Delphi Can

Orjinalini görmek için tıklayınız: TByteDynArray'den Dosya Oluşturma
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Merhaba ben web servis'den  dönen değer olarak gelen TByteDynArray türünde bir değeri dosya olarak nasıl kaydedebilirim.

Bir kaç yere baktım şöyle bir kod var ama onda da BlockWrite(F, pTemp^, Count );  bu satırda hata veriyor.
Hata çıktısı: First chance exception at $77691812. Exception class EInOutError with message 'I/O error 6'. Process EFatura.exe (5544)

procedure TForm2.ByteArrayToFIle(    const ByteArray : TByteDynArray;
const FileName : string );
var Count : integer;
F : FIle of Byte;
pTemp : Pointer;
begin
AssignFile( F, FileName );
Rewrite(F);
try
Count := Length( ByteArray );
pTemp := @ByteArray[0];
BlockWrite(F, pTemp^, Count );
finally
CloseFile( F );
end;
end;
var TmpRpt:TMemoryStream; InvImageType:SmallInt; aFileName:String;
   pEngine : EngineSoap;//web servisteki nesne
   pByte : TByteDynArray;
begin  
   pEngine := GetEngineSoap(True,sv_StorageApiAddr);
   pByte := pEngine.GetFile(sv_StorageToken,sv_StorageProjectNo,DMrm.InvoiceQryRecID.AsInteger);//servisten gelen değeri al
   TmpRpt := TMemoryStream.Create;//stream'e kaydet
   TmpRpt.Position := 0;
   TmpRpt.Write(pByte[0], Length(pByte));
end;
giib bir kod kullanabilirsin.
Teşekkürler hocam çok sağolun 
Bende şöyle yaptım
ByteArray:=deger[0].document_content;
       tms := TMemoryStream.Create;
       tms.Position := 0;
       tms.Write(ByteArray[0], Length(ByteArray));
       tms.SaveToFile(deger[0].document_id+'.pdf'); //fatura numarasına göre 
@enes6635 eyvallah eline sağlık.
merhaba,

elimde fatura.zip isminde bir dosya var. Ve fatura entegrator firmaya, web servis aracılığıyla göndereceğim.



zipdosya isminde bir değişken tanımladım.

Var
zipdosya: TByteDynArray

Sorunum Şu:

fatura.zip dosyasını, TByteDynArray tipine nasıl dönüştürebilirim. yardımcı olabilirseniz çok memnun olurum.


servis.CompressedSendInvoice(userInfo, zipdosya);
(14-01-2020, Saat: 13:32)acemi_programci Adlı Kullanıcıdan Alıntı: [ -> ]merhaba,

elimde fatura.zip isminde bir dosya var.  Ve fatura entegrator firmaya, web servis  aracılığıyla göndereceğim.



zipdosya isminde bir değişken tanımladım.

Var
zipdosya: TByteDynArray

Sorunum Şu:

fatura.zip dosyasını, TByteDynArray tipine nasıl dönüştürebilirim. yardımcı olabilirseniz çok memnun olurum.


servis.CompressedSendInvoice(userInfo, zipdosya);
(14-01-2020, Saat: 21:20)ismailkocacan Adlı Kullanıcıdan Alıntı: [ -> ]
(14-01-2020, Saat: 13:32)acemi_programci Adlı Kullanıcıdan Alıntı: [ -> ]merhaba,

elimde fatura.zip isminde bir dosya var.  Ve fatura entegrator firmaya, web servis  aracılığıyla göndereceğim.



zipdosya isminde bir değişken tanımladım.

Var
zipdosya: TByteDynArray

Sorunum Şu:

fatura.zip dosyasını, TByteDynArray tipine nasıl dönüştürebilirim. yardımcı olabilirseniz çok memnun olurum.


servis.CompressedSendInvoice(userInfo, zipdosya);


Araştırdım ama  (TFileStream   to    TByteDynArray) şeklinde sağlıklı çalışan bir kod bulamadım. 

Varsa paylaşabilir misiniz.
Aslında @ismailkocacan yolu göstermiş

  1. FARKLI SORULARI YENİ KONU BAŞLIĞI ALTINDA SORUN Exclamation
  2. Dosyayı TFileStream ile açın
  3. SetLength ile TByteDynArray tipindeki değişkeninizin boyutunu belirleyin
  4. TFileStream'in ReadBuffer prosedürü ile dosyayı diziye kopyalayın
  5. FileStream'i Free etmeyi unutmayın Smile
(15-01-2020, Saat: 15:37)SimaWB Adlı Kullanıcıdan Alıntı: [ -> ]Aslında @ismailkocacan yolu göstermiş

  1. FARKLI SORULARI YENİ KONU BAŞLIĞI ALTINDA SORUN Exclamation
  2. Dosyayı TFileStream ile açın
  3. SetLength ile TByteDynArray tipindeki değişkeninizin boyutunu belirleyin
  4. TFileStream'in ReadBuffer prosedürü ile dosyayı diziye kopyalayın
  5. FileStream'i Free etmeyi unutmayın Smile


Teşekkür ederim. 

dosyanın .zip dosyası olması TFileStream olarak açmaya engel olur mu?
(15-01-2020, Saat: 17:01)acemi_programci Adlı Kullanıcıdan Alıntı: [ -> ]
(15-01-2020, Saat: 15:37)SimaWB Adlı Kullanıcıdan Alıntı: [ -> ]Aslında @ismailkocacan yolu göstermiş

  1. FARKLI SORULARI YENİ KONU BAŞLIĞI ALTINDA SORUN Exclamation
  2. Dosyayı TFileStream ile açın
  3. SetLength ile TByteDynArray tipindeki değişkeninizin boyutunu belirleyin
  4. TFileStream'in ReadBuffer prosedürü ile dosyayı diziye kopyalayın
  5. FileStream'i Free etmeyi unutmayın Smile


Teşekkür ederim. 

dosyanın .zip dosyası olması TFileStream olarak açmaya engel olur mu?

Deneyin  Blush