AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Mal wieder nen Dynamisches Array[eledigt]
Thema durchsuchen
Ansicht
Themen-Optionen

Mal wieder nen Dynamisches Array[eledigt]

Ein Thema von tr909 · begonnen am 25. Sep 2006 · letzter Beitrag vom 25. Sep 2006
Antwort Antwort
tr909

Registriert seit: 5. Nov 2004
193 Beiträge
 
Turbo Delphi für Win32
 
#1

Mal wieder nen Dynamisches Array[eledigt]

  Alt 25. Sep 2006, 11:26
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:
var
 Buff : ARRAY of char;
 endMail, startMail : IntegerM
 tbbFile : TFileStream;

begin
...
Setlength (Buff,endMail-startMail+1)
tbbFile.ReadBuffer(Buff,endMail-startMail);
Beim Lesen in den Buffer tritt nun eine allgemeine Schutzverletzung auf. Benutze ich statt dessen jedoch ein statisches Array funktioniert alles wunderbar.

Ich krieg noch die Kriese.

Gruß
tr909
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: Mal wieder nen Dynamisches Array

  Alt 25. Sep 2006, 11:31
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
  Mit Zitat antworten Zitat
tr909

Registriert seit: 5. Nov 2004
193 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Mal wieder nen Dynamisches Array

  Alt 25. Sep 2006, 11:39
natürlich (die gehen mir so auf den "Zeiger". Irgendwann lern ich´s noch)

Besten Dank
tr909
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz