Oppure

Loading
13/04/09 12:33
haberdasherv_
ciao, vi scrivo perchè ho un problema un pò strano, dopo aver formattato il pc e reinstallato quindi il compilatore dev-pascal, ho cercato di ricompilare un vecchio sorgente che avevo fatto in precedenza.
il problema si presenta con la funzione rewrite che uso per creare un file nella stessa cartella del programma attraverso questo codice:
path:=fexpand(Getenv(path))+('\file.txt');
rewrite(testo,path);

prima il compilatore non mi dava problemi su questo codice, me lo compilava senza problemi e lo eseguiva anche, ora invece se provo a compilare mi viene segnalato questo errore nella funzione rewrite:
[i]Error: Incompatible type for arg no. 2: Got SHORTSTRING, expected LONGINT[i]
come posso fare per risolvere?
aaa
13/04/09 23:12
Anonymous
la variabile "testo" di che tipo l'hai dichiarata?
aaa
14/04/09 12:03
haberdasherv_
di tipo text
aaa
14/04/09 13:00
Anonymous
posta tutto il codice.... cosi provo a compilarlo
aaa
15/04/09 11:34
haberdasherv_
questo sarebbe il codice che prima mi veniva compilato senza problemi mentre ora viene rifiutato dal compilatore:
uses crt,dos;
var testo:text;
    path:pathstr;
    scelta:char;
begin
   writeln(' 1) Crea un file di testo');
   writeln(' 2) Esci');
   repeat scelta:=readkey until (scelta='1') or (scelta='2');
   if scelta='1' then
   begin
      path:=fexpand(Getenv(path))+('\file.txt');
      rewrite(testo,path);
      reset(testo);
      repeat until keypressed;
   end;
   if scelta='2' then
   begin
      clrscr;
      write('Sei sicuro di voler uscire? s/n');
      repeat scelta:=readkey until (upcase(scelta)='S') or (upcase(scelta)='N');
   end;
end.
aaa
15/04/09 13:34
ruggy94
Postato originariamente da haberdasherv:Error: Incompatible type for arg no. 2: Got SHORTSTRING, expected LONGINT

Ti indica che c'è un errore nel 2° argomento di una funzione, che dovrebbe essere di tipo LONGINT e invece (a quanto dice lui :D) gliel'hai fornito SHORTSTRING
aaa
15/04/09 14:54
Anonymous
già... ma il fatto è che per quanto ne so io la riga
rewrite(testo,path); 


è sintatticamente sbagliata... perché dentro al rewrite ci va come parametro soltanto la variabile del file.... non anche il percorso...
il percorso deve essere associato alla variabile testo prima con l'istruzione assign(testo, percorso)

quindi mi pare un po strano che prima te lo compilava...

cmq boh.. magari qualcuno ne sa un po di più

aaa
15/04/09 16:53
haberdasherv_
infatti ora l'errore non me lo da più, grazie mille... comunque non lo so neanche io come mai prima me lo prendeva se dici che è sbagliato...

PS: @ruggy94
cosa voleva dire l'errore l'avevo capito anche io, non ci vuole molto per tradurre un semplice messaggio dall'inglese, infatti se guardi sopra ho chiesto come risolverlo, non cosa significasse, comunque grazie per aver risposto :D
aaa