[Gambas-user] Problem with Exist & Open functions with filename containing spaces
John Rose
john.aaron.rose at ...626...
Fri Mar 13 11:58:11 CET 2015
On 12/03/15 12:19, Benoît Minisini wrote:
> Le 12/03/2015 13:11, John Rose a écrit :
>> On 12/03/15 11:38, Tobias Boege wrote:
>>> On Thu, 12 Mar 2015, John Rose wrote:
>>>> On 12/03/15 10:37, Tobias Boege wrote:
>>>>> Public Sub Main()
>>>>> Dim sPath As String = Temp$("with spaces")
>>>>> Dim hFile As Stream
>>>>> Dim sLine As String
>>>>>
>>>>> File.Save(sPath, "some string")
>>>>>
>>>>> Debug "Path =";; sPath
>>>>> Debug "Exist =";; Exist(sPath)
>>>>> Debug "Content ="
>>>>> hFile = Open sPath For Input
>>>>> For Each sLine In hFile.Lines
>>>>> Debug " "; sLine
>>>>> Next
>>>>> Close #hFile
>>>>> End
>>>> I've tried that program and it didn't display anything in the Console
>>>> window. I was not able to compile the attached Test app with Debug as
>>>> when I tried to add the gb.debug component (by clicking its checkbox
>>>> which did put an x in it) using Project Properties, it did not enable
>>>> the OK button. When I closed the Project Properties window & reopened
>>>> it, the checkbox was not marked with an x. So I put in Print statements
>>>> and it did not even show their results on the Console window when I ran
>>>> the Test app.
>>>>
>>> The attached file was a Gambas script. You could (and should) have run it
>>> as-is. Your project is a GUI one where you blindly put the code in a Form's
>>> class file. But my code had a Main() procedure which is already implemented
>>> in the Form class. You have incorrectly overridden that implementation by
>>> inserting my Main() procedure (which was made for a script or console
>>> application).
>>>
>>>> BTW I think that the 'File or Directory does not exist'
>>>> window appears because I have a 'Catch' followed by
>>>> 'Message.Warning(ERROR.Text)' in the coding of the relevant Sub. Is it
>>>> possible to show the line number when the Catch 'catches'? I've also
>>>> tried putting Breakpoints in my app but that didn't help.
>>> To clarify: what shows the error? A message box or a popup? Because you said
>>> it was a popup (which I picture as a Balloon or tooltip-like window) and now
>>> you conjecture your Message.Warning() call may be it. But if it was a popup,
>>> as I picture it, it cannot be caused by a Message.Warning().
>>>
>>> You get the error line with Error.Where. You could also leave the Catch out
>>> and let the IDE display the error by itself. The IDE is good enough at that.
>>>
>>> Regards,
>>> Tobi
>>>
>> A better name for what I called a popup is a dialog window with just an
>> Ok button. It is caused by the Message command, because when I comment
>> out the Catch & Message lines in my app it does not appear. However,
>> the IDE (by itself) does not display any error then. Using my previously
>> quoted code, the 'plain out' file does not exist (though it is present
>> in my home directory).
>>
>> Using the code below in the attached Test app when using the IDE, when I
>> click the Run button, a popup appears stating 'File or Directory does
>> not exist at line 34' which is 'hFile = Open sPath For Input'.
>> Public Sub RunButton_Click()
>> Dim sPath As String = User.Home &/ "plain out"
>> Dim hFile As Stream
>> Dim sLine As String
>> Print "sPath='" & sPath & "'"
>> Print "*******"
>> Debug "Path =";; sPath
>> Debug "Exist =";; Exist(sPath)
>> Debug "Content ="
>> hFile = Open sPath For Input
>> For Each sLine In hFile.Lines
>> Print sLine
>> Debug " "; sLine
>> Next
>> Close #hFile
>> End
>>
>>
>> Therefore, I think that there is either a problem with using Debug->Run
>> or commands such as 'Opening a filename containing spaces' when using
>> the IDE. BTW I'm using Gambas 3.6.2 'supplied' by the Gambas Stable
>> Launchpad Ubuntu ppa.
>>
> There is no problem with file names with spaces inside, or any other
> character except '\x00'.
>
> I would guess that the file on your disk is not really named
> "plain[space]out"
>
> Regards,
>
Benoit,
You were correct,. As soon as I renamed it 'plain out' (i.e. with a
space), it was OK. I presume that the command line program, that I
called with an Exec, has (what I would consider to be) a bug in it re
this file name. Unfortunately I have found no means to cintact the
program's author by email/twitter/phone.
More information about the User
mailing list