Agrandir saisie fichier binaire

Résolu
cs_Duffer Messages postés 3 Date d'inscription mardi 21 novembre 2000 Statut Membre Dernière intervention 5 août 2011 - 4 août 2011 à 11:38
cs_Duffer Messages postés 3 Date d'inscription mardi 21 novembre 2000 Statut Membre Dernière intervention 5 août 2011 - 5 août 2011 à 20:54
Bonjour

J'espère ne pas commettre d'impair pour mon premier post ici.

Voilà j'ai un petit souci. Je suis entrain de créer un petit programme et j'ai un souci. Dans ce dernier, je voudrais insérer un texte qui n'a pas une longueur fixe dans un fichier binaire. Quand la partie de mon texte fait moins de 15 caractères, je n'ai pas de problème car l'emplacement fait 15 caractères. Or mon texte peut monter à 30 caractères et c'est bien là mon problème.

J'aimerais savoir s'il est possible d'agrandir cette zone de saisie et de l'adapter suivant la longueur de mon texte ?

Cordialement Duffer

Je vous copie ma procédure :

Function Crop(S:String):string;
begin while system.Pos(#0,S)>0 do Delete(S,system.Pos(#0,S),1); Crop:=S; end;

procedure TForm1.Button1Click(Sender: TObject);
 var
  left, right, data : string;
  tmp_file : TextFile;
  f: file;
  i, nb_cararctere : integer;
begin
  AssignFile(F,'d:\Test\2.gps');
  Reset(F, 1);
  Seek(F, $00004E8C);

  nb_cararctere:= length(crop(Edit1.Text)); //Nb de caractere present dans le mot
    AssignFile(tmp_file, 'd:\Test\Test.txt');
    ReWrite(tmp_file);
    for i:= 1 to nb_cararctere do
    begin
      left:= (LeftStr((crop(Edit1.Text)),i)); 
      right:= (rightStr(left,1));
      Write(tmp_file, right+#00);  
      data := right+#00;

      Blockwrite(F, data[1], Length(data));
    end;
  CloseFile(tmp_file) ;
  CloseFile(f);
 end;

2 réponses

cs_Duffer Messages postés 3 Date d'inscription mardi 21 novembre 2000 Statut Membre Dernière intervention 5 août 2011
5 août 2011 à 18:23
Un grand merci, un lien très utile !
0
cs_Duffer Messages postés 3 Date d'inscription mardi 21 novembre 2000 Statut Membre Dernière intervention 5 août 2011
5 août 2011 à 20:54
Bon je vois comment je vais procéder avec les Tfilestreams. Par contre j'ai une question sur ces dernières, comment puis-je faire pour couper un fichier en 2 ?
Ce que je veux faire c'est copier la première partie ($00000000 -> $00004E8C) insérer mon texte, puis copier la dernière partie ($00004EB8 -> à la fin du fichier).
0
Rejoignez-nous