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
  cxgrid String alan sorunu HuseyinF 7 235 25-09-2019, Saat: 16:54
Son Yorum: HuseyinF
  Writefile yazılan byte sorunu seci20 2 221 04-09-2019, Saat: 20:29
Son Yorum: seci20
  Fastreport barcod yazdirma sorunu TheEAK 8 686 30-07-2019, Saat: 17:09
Son Yorum: TheEAK
  FDMemTable1.Filter Sorunu Hk. pro_imaj 4 363 14-07-2019, Saat: 00:38
Son Yorum: pro_imaj
  IPhone resim aktarma sorunu adelphiforumz 10 622 10-07-2019, Saat: 20:00
Son Yorum: SimaWB



Konuyu Okuyanlar: 1 Ziyaretçi