![]() |
Mal wieder nen Dynamisches Array[eledigt]
So, folgendes. Ich will eine Datei Parsen. Dafür lese ich sie in ein FileStream ein und will bestimmte Abschnitte nacheinander "rauskopieren". endMail und startMail geben jeweils die Position an, an der der entsprechende Teil beginnt bzw. endet.
Delphi-Quellcode:
Beim Lesen in den Buffer tritt nun eine allgemeine Schutzverletzung auf. Benutze ich statt dessen jedoch ein statisches Array funktioniert alles wunderbar.
var
Buff : ARRAY of char; endMail, startMail : IntegerM tbbFile : TFileStream; begin ... Setlength (Buff,endMail-startMail+1) tbbFile.ReadBuffer(Buff,endMail-startMail); Ich krieg noch die Kriese. Gruß tr909 |
Re: Mal wieder nen Dynamisches Array
Hi,
da ist noch etwas durcheinander in deinem Code. Am einfachsten führst du erstmal eine Variable ein, in der du die Länge zwischenspeicherst. Hier musst du sonst an mind. zwei Stellen die Berechnung ändern und das ist ganz schlecht. Zudem sind dynamische Arrays nur Zeiger auf ein reserviertes Stück speicher, du musst also den Index überben um das korrekte Element zu bekommen:
Delphi-Quellcode:
var
Buff : Array of char; endMail, startMail : Integer; begin ... setLength (Buff, endMail - startMail + 1); // length gibt die Länge des Arrays zurück tbbFile.ReadBuffer(Buff[0], length(Buff)); Gruß De Unwissende |
Re: Mal wieder nen Dynamisches Array
:wall: natürlich (die gehen mir so auf den "Zeiger". Irgendwann lern ich´s noch)
Besten Dank tr909 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz