Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: lele - 25 Dicembre 2008, 13:14:12

Titolo: Bad argument
Inserito da: lele - 25 Dicembre 2008, 13:14:12
WHILE NOT Eof(filework)

   ' First step. Fortran comment
   LINE INPUT #filework, linefile
   pos = InStr(linefile, "!")
   PRINT #filetex, Mid(linefile, pos)

WEND


Perché la riga del mid mi dice "Bad argument?"
Titolo: Re: Bad argument
Inserito da: Ceskho - 25 Dicembre 2008, 15:54:07
Hai provato a dichiarare pos come String?
Codice: [Seleziona]

dim pos as String
Titolo: Re: Bad argument
Inserito da: leo72 - 26 Dicembre 2008, 00:12:18
Credo, ma dovrei verificare con del codice, che si verifichi l'errore se non viene trovata la stringa interessata.
Instr(), infatti, restituisce 0 se non viene trovata la stringa "!"; 0 viene poi passato a Mid() come inizio della ricerca ma questo non è un indice valido (la numerazione in Mid() inizia con 1).
Titolo: Re: Bad argument
Inserito da: md9327 - 27 Dicembre 2008, 11:53:15
Esatto!

Pos deve essere un Integer, che riceve la posizione del primo carattere della stringa da ricercare all'interno della stringa sorgente.

Ad eccezione dell'indice di un array, che deve partire da zero (0), per le funzioni stringa, il primo carattere è sempre uno (1); se InStr ritorna 0, vuol dire che la stringa non è stata trovata, per cui è necessario controllare questo valore, prima di procedere nelle operazioni condizionate da questo numero.
Titolo: Re: Bad argument
Inserito da: lele - 27 Dicembre 2008, 15:35:39
Erroraccio mio!

Giusto. Adesso funziona.

Grazie gamberi :-)