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

  FORUM HardWare.fr
  Programmation

  [delphi] pb avec les char et string

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[delphi] pb avec les char et string

n°84782
drlobo
Posté le 28-12-2001 à 23:17:08  profilanswer
 

je lit dans un fichier des caracteres
quand je fais ca:
 
var
Buffer:Char;
temp:widestring;
 
for j:=1 to taille do
begin
Fileread(Fichier,Buffer,1);
memo1.text:=memo1.Text+Buffer;
end;
 
ca marche (le texte est affiché)
 
mais si je fais ca:
temp:='';
for j:=1 to taille do
begin
Fileread(Fichier,Buffer,1);
temp:=temp+Buffer;
end;
memo1.text:=temp;
 
et ben il met rien dans temp
si dans la boucle je met juste temp:=Buffer et que j'affiche temp, il y a quelque chose dedans mais dès que j'essaye de concatener les valeurs succesives de Buffer ca ne me met rien dans temp.
 
A quoi c'est dû?
 
PS:il me faut la chaine lue dans une variable

mood
Publicité
Posté le 28-12-2001 à 23:17:08  profilanswer
 

n°84783
[SDF]Poire
Vive Grumly
Posté le 28-12-2001 à 23:20:48  profilanswer
 

rien compris moi.....
pq tu lis caractere par caractere ?


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°84816
drlobo
Posté le 29-12-2001 à 11:21:07  profilanswer
 

alors comment faut faire pour ne pas lire char par char?
 
j'ai aussi essayer ca mais ca me fais une erreur:
 
var  
Buffer: PChar;
 
t:=PChar(AllocMem(taille + 1));
FileRead(fichier, t, taille);

n°84835
antp
Super Administrateur
Champion des excuses bidons
Posté le 29-12-2001 à 12:31:55  profilanswer
 

WideString c'est de l'unicode (2 octets/caractère) ça risque plus de poser des problèmes qu'autre chose dans ton cas. Met une string simple:
temp: string;
et pour le t := PChar(AllocMem( )); je veux bien croire que ça fait une erreur :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°84839
antp
Super Administrateur
Champion des excuses bidons
Posté le 29-12-2001 à 12:34:41  profilanswer
 

exemple tiré de l'aide de Delphi:

Code :
  1. var
  2.   F: file;
  3.   Size: Integer;
  4.   Buffer: PChar;
  5. begin
  6.   AssignFile(F, 'test.txt');
  7.   Reset(F, 1);
  8.   try
  9.     Size := FileSize(F);
  10.     GetMem(Buffer, Size);
  11.     try
  12.       BlockRead(F, Buffer^, Size);
  13.       ProcessFile(Buffer, Size); // c'est ici que tu copies ton buffer vers autre chose, une string par exemple.
  14.     finally
  15.       FreeMem(Buffer);
  16.     end;
  17.   finally
  18.     CloseFile(F);
  19.   end;
  20. end;


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°84858
drlobo
Posté le 29-12-2001 à 13:58:23  profilanswer
 

j'ai maitenant ca:
var
  temp:string;
  t:PChar;
 
GetMem(t,taille);
Fileread(Fichier,t^,taille);
temp:=t^;
FreeMem(texte, Size);
 
ca marche pas (je suis pas sur que ce soit comme ca qu'il faut faire pour recuperer la chaine pointé dans un string)

n°84872
antp
Super Administrateur
Champion des excuses bidons
Posté le 29-12-2001 à 17:10:39  profilanswer
 

temp := t;
 
tout simplement.
 
t^ pointe vers le premier caractère en fait... et donc donne un char. Or la chaine c'est un PChar, donc t. Et string := pchar on dirait que Delphi comprend...

 

[edtdd]--Message édité par antp--[/edtdd]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°84875
drlobo
Posté le 29-12-2001 à 17:40:08  profilanswer
 

ben j'ai deja essayé temp:=t;
mais quand j'affiche temp y a rien dedans et pourtant t n'est pas vide:
si j'affiche par exemple t[1], ca affiche un caractere!!
je vois vraiment pas d'ou vient le probleme

n°84883
Buitoni
Posté le 29-12-2001 à 18:48:09  profilanswer
 

Pourquoi tu joues encore avec un fichier... TFileStream mon vieux...


---------------
Vendredi c'est Buitoni

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

  [delphi] pb avec les char et string

 

Sujets relatifs
char* mafonction(int unint)DivX Organizer en Delphi --> Beta Test SVP
avis de réception de courriel (delphi)modifier l'extension d'un fichier avec delphi
Besoin d'aide sous Delphi 6[C++] Vous êtes du genre char* ou plutôt string?
[C++] char *[C++] Prise de tête avec un char
Test Chat fait en Delphi 
Plus de sujets relatifs à : [delphi] pb avec les char et string


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