Newsgroup: it.comp.lang.pascal
Titolo: Gestione File

Ciao a tutti i frequentatori di questo niusgruppo... ^__^
Qualche anima pia mi potrebbe consigliare delle procedure piu'
semplici possibile per restituire le dimensioni di un file e per
stabilire se quel file esiste oppure no ???????
Non sono riuscito a ricavarci niente da solo.... ;)))
Ciao e Grazie !!
Captain  Marko Ramius
Kraznj Oktjabr (Red October) - SSSR

Ciao e Grazie !!
Ciao e 73-51 de Tartaruga .
.oO-=> TARTARUGA (* Gabriele *) <=-Oo.
     E-Mail: 
ru...@ita.flashnet.it
http://www.geocities.com/SiliconValley/Peaks/4731/

qualcosa è andato storto...
Grazie mille .... ;))))
Ciao !!


stabilire se quel file esiste oppure no ???????
Dall'help di BPW:
function FileExists(FileName: String): Boolean;
{ Boolean function that returns True if the file exists;otherwise,
  it returns False. Closes the file if it exists. }
var
  F: file;
begin
  {$I-}
  Assign(F, FileName);
  FileMode := 0;  ( Set file access to read only }
  Reset(F);
  Close(F);
  {$I+}
  FileExists := (IOResult = 0) and (FileName <> '');
end;  { FileExists }
Per quanto riguarda la dimensione del file, basta usare la funzione
FileSize: ecco un altro pezzo di codice preso sempre dall'help di BPW:
program test;
var
   f: file of Byte;
   size : Longint;
 begin
   { Get file name from command line }
   Assign(f, ParamStr(1));
   Reset(f);
   size := FileSize(f);
   Writeln('File size in bytes: ',size);
   Writeln('Seeking halfway into file...');
   Seek(f,size div 2);
   Writeln('Position is now ',FilePos(f));
   Close(f);
 end.
Ciao,
Mauro Molinari
(Pascal programmer & musician)
Internet e-mail: 
maur...@tin.it
 / 
maur...@mbox.vol.it
Digital Things Home Page: 
=> 
http://www.geocities.com/SiliconValley/Bay/8251
=> 
http://space.tin.it/musica/gvettora
=> 
http://members.tripod.com/~DjM_DiT
=> 
http://www.musicnation.com/home/digital_things
*** To send me an e-mail, select the right address.
*** Per mandarmi una e-mail, scegli l'indirizzo corretto.

On Sun, 22 Feb 1998 09:51:47 GMT, ram...@kraznj-oktjabr.sov (Marko Ramius) wrote: >Qualche anima pia mi potrebbe consigliare delle procedure piu' >semplici possibile per restituire le dimensioni di un file e per >stabilire se quel file esiste oppure no ??????? Per controllare l'esistenza di un file puoi provare questa funzioncina in assembler: {$A+,B-,D+,E+,F-,G+,I+,L+,N-,O-,P-,Q-,R-,S+,T-,V-,X+,Y+} {$M 16384,0,655360} Function FileExist(filename : String) : Boolean; Assembler;         PUSH   DS         LDS    SI, [filename]      { make ASCIIZ }         XOR    AH, AH         LODSB         XCHG   AX, BX         MOV    Byte Ptr [SI+BX], 0         MOV    DX, SI         MOV    AX, 4300h           { get file attributes }         INT    21h         MOV    AL, False         JC     @1                  { fail? }         INC    AX @1:     POP    DS end;  { FileExist } Per la dimesione in byte invece puoi provare: PROCEDURE Get_File_Size(FName : string;                     var FSize : longint;                     var Error : word); { DESCRIPTION:     Gets size of existing file, in bytes.   SAMPLE CALL:     Get_File_Size('C:\
COMMAND.COM
',FSize,Error);   RETURNS:     FSize : 0 if error             else file size     Error : DosError code }   SR    : SearchRec; BEGIN { Get_File_Size }   {$I-}   FindFirst(FName,Archive,SR);   Error := DosError;   {$I+}   if Error = 0 then     FSize := SR.Size   else     FSize := 0; END; { Get_File_Size } 

Non sono riuscito a ricavarci niente da solo.... ;)))
function Esiste(Nome : string) : boolean;
var F : file;
begin
   assign(F, Nome);
   {$I-} Reset(F); {$I+}
   if (IOResult <> 0) then Esiste := false
   else
   begin
      close(F);
      Esiste := true; 
   end;
end;
function Dimensione(var F : file) : longint;
begin  
   {$I-} Reset(F, 1); {$I+} 
   if (IOResult <> 0) then 
      Dimensione := -1
   else
   begin
      Dimensione := filesize(f);
      close(F);
   end;
end;
Andrea      
(per le risposte via e-mail togli CHITIHACHIESTONIENTE!!!! dal mio indirizzo)
ICQ# 8328956

Dall'help di BPW:
.....gia'....io non avevo specificato,eh ?....
Mi servirebbero per il Borland Pascal 7 da DOS...... ;)))))
In quello per DOS ho girovagato per l'help ma non ho trovato
niente....:((((
Per verificare l'esistenza del file, dopo il consiglio di Gabriele
(thnx ;), sono riuscito ad implementare una piccola procedura nel mio
programmino.... pero' per le dimensioni (e mi servirebbero
davvero....) non so da parte rifarmi.... :(((( 


    FSize := SR.Size
....mpf ! ...... fossi stato in quelli che hanno fatto l'help del
Pascal l'avrei messa piu' nascosta la struttura del record
''SearchRec''.....
Avevo dato uno sguardo veloce a ''FindFirst'' e mi era sembrata una
procedura solo per cercare file in base anche agli attributi..... non
avevo notato quel minuscolo link ''TSearchRec''.....
Comunque grazier mille ! era proprio quello che stavo cercando !!!
^________________^
Ciao e grazie !!


      Dimensione := filesize(f);
Questo invece usa il Pascal per Windows, vero ?
....mi servirebbe per DOS ;)
Ciao !!


Kraznj Oktjabr (Red October) - SSSR
CIAO,
ti do un programma dimostrativo (funzionante) da cui puoi capire
qualcosa.
Program   TEST;
var       s:string;
          l:longint;
function  EsisteFile(NomeFile:string; Var size:longint):boolean;
var       f:file of char;
          c:char;
begin
          l:=0;
          EsisteFile:=false;
          Assign(f,NomeFile);
          {$I-}
          reset(f);
          read(f,c);
          if IoResult=0 then begin
             EsisteFile:=true;
             size:=FileSize(f);
             close(f)
          end
          {$I+}
end;
begin
          s:='c:\autoexec.bat';
          writeln;
          if EsisteFile(s,l) then
             writeln('Il file ',s,' esiste ed e' lungo ',l,' byte.')
          else
             writeln('Il file ',s,' non esiste');
          writeln
end.
N.B.
Nel caso S è un file che esiste ma la lunghezza e' zero byte la
funzione assumerà un valore FALSE ed l varra' zero. Se si vuole che la
funzione assuma valore TRUE se il file asiste, anche quando questo e'
di lunghezza zero bisogna togliere dalla funzione la riga  'read(f,c)'
Se hai bisogno di piu' spiegazioni scrivimi pure.
Saluti,              Fabio.

niente....:((((
Peccato che gli help di BPW e quelli di BP (che sono distribuiti con
lo stesso pacchetto, cambia solo l'IDE) siano uguali e che pure l'IDE
per Windows, in ogni caso, riesca a compilare pure i programmi per
DOS.


Kraznj Oktjabr (Red October) - SSSR


stabilire se quel file esiste oppure no ???????
se il file non e' di testo puoi usare:
filesize(filenome);
Saluti,
<Attenzione INDIRIZZO E_MAIL PROTETTO DA SPAMMER>
Narciso Bortoli - Bortoli...@KKKvalsugana.com
http://www.geocities.com/colosseum/track/4394

....mi servirebbe per DOS ;)
La funzione "filesize" e' propria del Turbo Pascal per DOS.


filesize(filenome);
O meglio, se il file e' definito come "text" non puoi usarla ma se e' definito
come "file" si', a prescindere che sia di testo o no.
Andrea Laforgia
(remove NOSPAM from my address before reply via e-mail)