Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1537 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [delphi] débutant : Accès aux fichiers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[delphi] débutant : Accès aux fichiers

n°272801
Kyle_Katar​n
Posté le 19-12-2002 à 14:26:58  profilanswer
 

Pourquoi le code suivant (pris dans l'aide de Delphi et adapté) me fait il une violatino d'accès et comment corriger ?
 

Code :
  1. function TForm1.COF(koi : string):string;
  2. var
  3.    iFileHandle: Integer;
  4.    iFileLength: Integer;
  5.    iBytesRead: Integer;
  6.    Buffer: PChar;
  7. begin
  8.      iFileHandle := FileOpen(koi, fmOpenRead);
  9.      iFileLength := FileSeek(iFileHandle,0,2);
  10.      FileSeek(iFileHandle,0,0);
  11.      Buffer := PChar(AllocMem(iFileLength + 1));
  12.      iBytesRead := FileRead(iFileHandle, Buffer, iFileLength);
  13.      FileClose(iFileHandle);
  14.      FreeMem(Buffer);
  15. end;

mood
Publicité
Posté le 19-12-2002 à 14:26:58  profilanswer
 

n°272838
antp
Super Administrateur
Champion des excuses bidons
Posté le 19-12-2002 à 15:05:49  profilanswer
 

spa terrible pour lire du texte dans un fichier cette méthode :/
Pourquoi t'emploies pas TFileStream et les string classiques de Delphi ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°272854
Kyle_Katar​n
Posté le 19-12-2002 à 15:10:27  profilanswer
 

je viens d'essayer TFileStream mais quand je fais  
 

Code :
  1. function TForm1.COF(koi : string):string;
  2. var
  3.    Fic: TFileStream ;
  4.    temp:string;
  5. begin
  6.      Fic := TFileStream.Create(koi,fmOpenRead);
  7.      Fic.Read(temp,fic.Size);
  8.      Fic.Free;
  9. end;


 
j'ai une erreur du même type quand j'arrive au "read"...

n°272858
antp
Super Administrateur
Champion des excuses bidons
Posté le 19-12-2002 à 15:11:38  profilanswer
 

Fic := TFileStream.Create(koi,fmOpenRead);
SetLength(temp, Fic.Size); // faut allouer la mémoire pour la chaine, mais au moins on ne devra pas se soucier de la libération
Fic.Read(temp[1],fic.Size); // 1 parce que c'est à 1 que commence la chaine. Si tu mets juste temp tu ne sais pas sur quoi tu tombes, soit le 1er octet d'une ShortString (sa taille) soit un morceau d'AnsiString/LongString, qui est un peu plus complexe
 
il faudra peut-être mettre @temp[1] s'il n'accepte pas temp[1] tout seul.


Message édité par antp le 19-12-2002 à 15:13:13

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°272874
Kyle_Katar​n
Posté le 19-12-2002 à 15:14:43  profilanswer
 

merci je regarde ça tout de suite !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [delphi] débutant : Accès aux fichiers

 

Sujets relatifs
acces 2000, VBA et temps d'éxécution[INTRANET] aide débutant
[Delphi] débutant : créer une unit de fonctions[Win32] Solutions simples pour lire des fichiers sons.
[PHP] accès qu système de fichier et vérouillage de fichiers (flock)Où mettre ses fichiers properties dans une webapp ?
switch pour débutant[HTML] droits / accès refusé
Plus de sujets relatifs à : [delphi] débutant : Accès aux fichiers


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR