cs_Duffer
Messages postés3Date d'inscriptionmardi 21 novembre 2000StatutMembreDernière intervention 5 août 2011
-
4 août 2011 à 11:38
cs_Duffer
Messages postés3Date d'inscriptionmardi 21 novembre 2000StatutMembreDerniè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;
cs_Duffer
Messages postés3Date d'inscriptionmardi 21 novembre 2000StatutMembreDerniè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).