Çok Yakında Yeni Bir Arayüzle karşınızdayız! http://yeni.delphican.com/

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
SetLength sorunu
#1
Ustalarım merhaba. Garip bir sorunla karşılaşıyorum. Parse etmek istediğim bir veri var. Bu veriyi parse etmek için alttaki foksiyonu yazdım. Lakin hızlı okumaya başladığım zaman alttaki hatayı alıyorum. Bunun sebebi nedir ? Atladığım ve yanlış yaptığım bir yermi var ? 

function ParseData(MainBuf: TMyByteArray;
 var XmlData: TXmlData): Integer;
var
 Fs: TStringStream;
 I: Integer;
 TmpStr: String;
 TmpBuf: TMyByteArray;
 FirstPos: Integer;
begin
 Result := -1;
 Fs := TStringStream.Create;
 try
   Fs.Clear;
   Fs.Write(MainBuf[0], Length(MainBuf));
   Finalize(MainBuf);
   Fs.Position := 0;
   while Fs.Position <> Fs.Size do
   begin
     Application.ProcessMessages;
     FirstPos := Fs.Position;
     TmpStr := Fs.ReadString(5);
     if Uppercase(TmpStr) = Uppercase('bak') then
     begin
       Fs.Position := FirstPos;
       I := PosEx(Uppercase('bitti'), Uppercase(Fs.DataString),
         FirstPos + 1) + 7;
       XmlData.XmlList.Add(Fs.ReadString((I - 1) - FirstPos));
       Inc(Result);
     end
     else
     begin
       Fs.Position := FirstPos;
       I := PosEx(Uppercase('gör'), Uppercase(Fs.DataString),
         FirstPos + 1) - 1;
       SetLength(TmpBuf, I - FirstPos);
       GetMem(@TmpBuf);
       Fs.Read(TmpBuf[0], Length(TmpBuf));
       XmlData.DataList.Write(TmpBuf[0], Length(TmpBuf));
       Inc(Result);
     end;
   end;

 finally
   Fs.Free;
 end;
end;
 



Verdiği hata.

XbNRLj.png
Cevapla
#2
@seci20 koda baktığımda bir sorun göremedim yada gözümden kaçtı
fakat aldığın hatanın oluşum nedenlerini incelediğimde ortak olan bilgi
gelen verinin belirli aralıklar dışında yada null olduğu ifade ediliyor
Bu yönden bir kez daha bakmakta fayda olabilir
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#3
(13-09-2019, Saat: 10:14)adelphiforumz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.@seci20  koda baktığımda bir sorun göremedim yada gözümden kaçtı
fakat aldığın hatanın oluşum nedenlerini incelediğimde ortak olan bilgi
gelen verinin belirli aralıklar dışında yada null olduğu ifade ediliyor
Bu yönden bir kez daha bakmakta fayda olabilir

Zaten kodda normalde yavaş okuduğu zaman hiç bir problem yok. Mesela aralarına showmessage koyayım sorunsuz okuyor. Ama hızlı okumaya başladığında hata veriyor çözemedim bir türlü.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  SQl tarih Sorunu Bay_Y 7 266 11-11-2019, Saat: 09:06
Son Yorum: Bay_Y
  Quick Reportta Türkçe sorunu boreas 4 181 08-11-2019, Saat: 00:14
Son Yorum: boreas
  Fastreport barcod yazdirma sorunu TheEAK 15 1.092 07-11-2019, Saat: 15:57
Son Yorum: mcuyan
  SOAP WSDL | Tarihi sorunu ve C# import sorunu hk. pro_imaj 2 194 24-10-2019, Saat: 08:51
Son Yorum: sabanakman
  Datasnap free yapmama sorunu. seci20 1 119 24-10-2019, Saat: 08:16
Son Yorum: 3ddark



Konuyu Okuyanlar: 1 Ziyaretçi