AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Problem mit D2009 und IdFTP
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit D2009 und IdFTP

Ein Thema von fealXX · begonnen am 26. Jan 2010 · letzter Beitrag vom 26. Jan 2010
 
fealXX

Registriert seit: 16. Dez 2007
10 Beiträge
 
#3

Re: Problem mit D2009 und IdFTP

  Alt 26. Jan 2010, 11:49
Zitat von DeddyH:
Zum Einen sollte man dynamisch erzeugte Objekte immer in try-finally einbetten, um Speicherlecks zu vermeiden.
Delphi-Quellcode:
Bla := TBla.Create;
try
  //Mach was mit Bla
finally
  Bla.Free;
end;
Dann greifst Du auf Elemente der Arrays(?) arr1 und arr2 zu, ohne vorher zu prüfen, ob diese überhaupt befüllt sind. Ansonsten zeig uns doch einmal, in welcher Zeile die Exception auftritt.
In welcher Zeile die Exception auftritt weiss ich leider nicht, wie gesagt, unter Windows XP (mein Homerechner, wo ich entwickle) ist der Fehler nicht reproduzierbar, während er unter Win 2003 (Server) auftritt.

Die Try Finally existieren schon, hab nur das aus dem code rauskopiert wo das problem liegen muss.

Kann das an einem Leeren Array liegen das es eine Exception "Lesen von Adresse 00000" auftritt?
Die Explode funktion hab ich hier aus der CodeLibrary wenn ich mich recht erinnere:
Delphi-Quellcode:
function Explode(const Separator, S: string; Limit: Integer = 0): TStringDynArray;
var
  SepLen: Integer;
  F, P: PChar;
  ALen, Index: Integer;
begin
  SetLength(Result, 0);
  if (S = '') or (Limit < 0) then Exit;
  if Separator = 'then
  begin
    SetLength(Result, 1);
    Result[0] := S;
    Exit;
  end;
  SepLen := Length(Separator);
  ALen := Limit;
  SetLength(Result, ALen);

  Index := 0;
  P := PChar(S);
  while P^ <> #0 do
  begin
    F := P;
    P := AnsiStrPos(P, PChar(Separator));
    if (P = nil) or ((Limit > 0) and (Index = Limit - 1)) then P := StrEnd(F);
    if Index >= ALen then
    begin
      Inc(ALen, 5);
      SetLength(Result, ALen);
    end;
    SetString(Result[Index], F, P - F);
    Inc(Index);
    if P^ <> #0 then Inc(P, SepLen);
  end;
  if Index < ALen then SetLength(Result, Index);
end;
  Mit Zitat antworten Zitat
 


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 22:34 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-2025 by Thomas Breitkreuz