Bonjour,
J'ai un fichier crypté tres gros que je voudrais mettre dans un xml
Quand je fais :
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;
J'ai outOfMemory quand le fichier fait plus de 100Mo ...

Donc je veux passer par un stream, le couper et concaténer le tout dans mon fichier xml :
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;
Mais :
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