salut les mec!!!!
je cherche une fonction ou une méthode pour faire extraire une partie d'un fichier.
Cette partie est limité par un offset du départ et un autre pour finir.....
merci![]()
salut les mec!!!!
je cherche une fonction ou une méthode pour faire extraire une partie d'un fichier.
Cette partie est limité par un offset du départ et un autre pour finir.....
merci![]()
Salut,
Cela devrait pouvoir se faire via un TFileStream.
Va jeter un coup d'oeil dans la FAQ.
Mille excuses je pensais avoir vu les Streams (Flux) dans la FAQ
mais erreur on en parle dans les Tutoriels.
- ici : http://delphi.developpez.com/cours/asm/flux/
- là : http://delphi.developpez.com/cours/?...angage-fichier
Ce lien n'est pas mal non plus :ftp://ftp-developpez.com/flash-koti/...filestream.pdf
.. voir l'exemple de la function OuvrirFichier() : boolean qui récupère une partie d'un fichier pour la placer dans un Record.
Sur ce bon week-end.
A+.![]()
Gilbert Geyer
--------------
merci mais j'ai déjà lus tous ce que tu m'as donné maintenant, et j'arrive pas à trouver la bonne route pour faire mon travail
Ce je que je voudrais c'est savoir comment couper un fichier en parties mais sauvegarder une seule, cette partie par exemple commence de l'offset 2 et fini par l'offset 100 et entre 2 et 100 c'est le contenu que je veux sauvegarder dans un autre fichier
c'est tout
merci![]()
regardes par là.
Bon courage ou Bonne Chance (selon le contexte)
Mon blog sur WordPress
Just-Soft
--------
regarde mon dernier message j'ai bien exliqué le prob
merci
le problème est bien décrit effectivement, et il me semble qu'il s'agit bien d'une structure binaire. donc faut regarder dans les fonctions qui traitent du fichier binaire.
Bon courage ou Bonne Chance (selon le contexte)
Mon blog sur WordPress
Bonjour,
Voici une exemple simplifé d'une fonction qui charge un fragment d'un fichier via un TFileStream dans son Result sous la forme d'un TMemoryStream :
Et voici un exemple d'utilisation où je récupère le MemoryStream pour alimenter un RichEdit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 function CopyFragFile(const FileName : String; From,SizeFrag : longint) : tMemoryStream; // Renvoie un MemoryStream contenant la copie d'un fragment d'un fichier à // partir de la position From et de taille SizeFrag octets var FS : tFileStream; begin Result:=tMemoryStream.create; if (not FileExists(FileName)) then begin Showmessage('Fichier '+FileName+' : inexistant'); EXIT; end; FS := TFileStream.create(FileName, fmOpenRead or fmShareDenyWrite); FS.Position := From; Result.CopyFrom(FS, SizeFrag); Result.Position:=0; FS.Free; end;
(Dans cet exemple le fichier de données 'test0.dat' contenait du texte mais les Stream's peuvent avaler n'importe quel type de données).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 procedure TForm1.SpeedButton2Click(Sender: TObject); var MS : TMemoryStream; FileName : String; From,SizeFrag : longint; begin FileName:=ExtractFilePath(Application.ExeName)+'test0.dat'); From:=856; SizeFrag:=7039; MS:=CopyFragFile(FileName,From,SizeFrag); RichEdit1.Lines.LoadFromStream(MS); MS.Free; end;
Et comme tu veux sauvgarder ton fragment dans un autre fichier il suffit de remplacer ci-dessus RichEdit1.Lines.LoadFromStream(MS); par MS.SaveToFile(FileNameDestination);
A+.![]()
Gilbert Geyer
-----------------
Merci !!!!!
C'est vraiment fantastique
une chose de plus
Pouvez Vous me donner la fonction qui ajoute un fichier a un autre
(Une autre fonction qui fais un travail inverse de la function CopyFragFile)
--------------------
Smith
THX
Salut,
... ben suffit de créer un Fichier3 dans lequel on transfère le Fichier1 au début et le Fichier2 à la suite.Pouvez Vous me donner la fonction qui ajoute un fichier a un autre
Il est où le problème ?
A+.![]()
c'est ça l'idée mais faut-il une fonction ou quoi??
j'ai pas compris...
--------------
Smith
Merci
Re-salut
... fonction ou procédure : on s'en fout.faut-il une fonction ou quoi??
Tiens voici une procedure :
Avertissement : Si le fichier nommé FileDest existe déjà il est automatiquement écrasé par le nouveau sans message d'avertissement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 procedure Add_Files(const FileName1,FileName2,FileDest : String); // Crée le fichier FileDest en ajoutant le fichier FileName2 à la suite de FileName1 var FS1,FS2,FSR : tFileStream; begin if (not FileExists(FileName1)) then begin Showmessage('Fichier '+FileName1+' : inexistant'); EXIT; end; if (not FileExists(FileName2)) then begin Showmessage('Fichier '+FileName2+' : inexistant'); EXIT; end; if FileExists(FileDest) then FSR := TFileStream.create(FileDest, fmOpenWrite) else FSR := TFileStream.create(FileDest, fmCreate); FSR.Position := 0; FS1 := TFileStream.create(FileName1, fmOpenRead); FS1.Position := 0; FSR.CopyFrom(FS1, FS1.Size); // Copie du 1er FS2 := TFileStream.create(FileName2, fmOpenRead); FS2.Position := 0; FSR.CopyFrom(FS2, FS2.Size); // Copie du 2ième FS1.Free; FS2.Free; FSR.Free; end;
Pour ajouter une message d'avertissement, modifier la partie if FileExists(FileDest) then ... else ...
Exemple d'utilisation :
A+.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 procedure TForm1.AddFilesClick(Sender: TObject); var FileName1,FileName2,FileDest : String; begin FileName1:=ExtractFilePath(Application.ExeName)+'Premier.txt; FileName2:=ExtractFilePath(Application.ExeName)+'Deuxieme.txt; FileDest :=ExtractFilePath(Application.ExeName)+'LesDeux.text'; Add_Files(FileName1,FileName2,FileDest); Memo1.lines.LoadFromFile(FileDest); //<- affichage pour vérification end;![]()
Gilbert Geyer
-------------
Merci
Mais les fonctions de ton dernier post ne m'aident pas
Il faut que le fichier je l'ajoute au fichier déjà ouvert on s'appuyant sur un Offset du départ et la dernière fonction ne fais pas ce que je voudrais
Merci de me donner une autre fonction
------------
Smith
Re-salut,
La demande a été :... et la procedure Add_Files(const FileName1,FileName2,FileDest : String); réalise ceci.Pouvez Vous me donner la fonction qui ajoute un fichier a un autre
A+.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager