Bonjour,
J'ai un fichier crypté tres gros que je voudrais mettre dans un xml
Quand je fais :
J'ai outOfMemory quand le fichier fait plus de 100Mo ...
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 function FileToMime(aFileName: string): string; var lFS: TFileStream; lIdEncoderMIME: TIdEncoderMIME; begin Result := ''; lFS := TFileStream.Create(aFileName, fmOpenRead or fmShareDenyWrite); lIdEncoderMIME := TIdEncoderMIME.Create(nil); try Result := lIdEncoderMIME.Encode(lFS); finally lIdEncoderMIME.Free; lFS.Free; end; end;
Donc je veux passer par un stream, le couper et concaténer le tout dans mon fichier xml :
Mais :
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
22 stream: TFileStream; bufStream: TMemoryStream; .... stream := TFileStream.Create(MonFichier, fmOpenRead or fmShareDenyNone); stream.Position := 0; i := 0; repeat bufStream := decoupeFileByBloc(stream, 1024 * 1024 * 60); // 60Mo par 60Mo if bufStream = nil then break; AssignFile(F, AFileName) ; Append(F) ; lTmp := StreamToMime(bufStream); write(F,lTmp); CloseFile(F); inc(i); bufStream.Free; until stream.Position >= stream.Size - 1; stream.free;
Je ne sais pas comment faire la fonction StreamToMime, elle ne me renvoie rien ...
Des idées pour transformer un memorystream en chaine ???
Je galère et ca devient urgent .. pleeeeease, helpme
Partager