cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 17 nov. 2007 à 19:55
Voilà une superbe fonction déposée par foxi mais comme
il est occupé à faire ses bd..
function TFAlarme.Parser(const Chaine, Separat: string; const Occurence: cardinal = 1): string;
var
i, p1, p2, ld: integer;
begin
Result := '';
if (posex(Separat, Chaine[1]) = 1) and (Occurence <= 1) then exit;
p1 := 1;
ld := Length(Separat);
for I := 1 to Occurence - 1 do
begin
p1 := posex(Separat, Chaine, p1);
if P1 = 0 then
exit
else
p1 := p1 + ld;
end;
p2 := posex(Separat, Chaine, p1);
if p2 = 0 then
p2 := length(Chaine) + 1;
Result := copy(Chaine, p1, p2 - p1);
end;
Rudy3212
Messages postés154Date d'inscriptionvendredi 20 août 2004StatutMembreDernière intervention31 décembre 2007 17 nov. 2007 à 20:58
Hum, si je comprend bien la fonction ça recherche dans une string, hors je cherche a faire une recherche hexa dans un fichier en l'ouvrant en mode binaire.
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 17 nov. 2007 à 23:45
Oui, ben, tu n'as pas du chercher bien longtemps
parceque en 3212 secondes je croule sous les infos..
Peux-tu préciser exactement ce que tu veux faire, c'est-à-dire, quelle est la nature de l'information que tu souhaites récupérer dans ce fichier binaire ?
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 18 nov. 2007 à 12:29
var
F, F2: file;
lus,ecrit:integer;
Buf: array[1..1024] of Char;
begin
if OpenDialog.Execute then
begin
AssignFile(F, OpenDialog.FileName);
Reset(F, 1);
AssignFile(F2, SaveDialog.FileName);
Rewrite(F2, 1); // Tu peux aussi renvoyer dans un mémo
repeat
BlockRead(F, Buf, SizeOf(Buf), lus);
BlockWrite(F2, Buf, lus, ecrit); on
until (lut = 0) or (ecrit <> lus )
CloseFile(F);
CloseFile(F2);
end;
end;
Pour le lut c'est une erreur de frappe cé lus je pense.
Mais pour le on :s, j'ai essayer de le viré, rajouter un ; a la ligne dessous sa compile mais sa provoque un erreur sur le blockwrite.
Et je ne voit pas ou on met les valeur a rechercher .., si tu pouvait expliquer un peu la fonction sa serait vraiment cool.
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 18 nov. 2007 à 17:36
Tu as du oublier un truc..
Enfin l'important est que tu t'en est sorti..
ça marche d'ailleurs on retrouve à peu près la même chose dans l'aide de delphi :
var
FromF, ToF: file;
NumRead, NumWritten: Integer;
Buf: array[1..2048] of Char;
begin
if OpenDialog1.Execute then { Affichage de la boîte de dialogue d'ouverture }
begin
AssignFile(FromF, OpenDialog1.FileName);
Reset(FromF, 1); { Taille d'enregistrement = 1 }
if SaveDialog1.Execute then { Affichage de la boîte de dialogue d'enregistrement}
begin
AssignFile(ToF, SaveDialog1.FileName); { Ouverture du fichier de sortie }