AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Rätselhafte Exceptions....?!

Ein Thema von Tommi · begonnen am 9. Feb 2004 · letzter Beitrag vom 9. Feb 2004
Antwort Antwort
Benutzerbild von Tommi
Tommi

Registriert seit: 23. Mai 2003
27 Beiträge
 
Delphi 3 Professional
 
#1

Re: Rätselhafte Exceptions....?!

  Alt 9. Feb 2004, 10:15
Okay, das sind Auszüge aus der Unit, die unter anderen linked list units, den Fehler verursacht.

Delphi-Quellcode:
Unit LanguageHandler;

INTERFACE

Uses SysUtils, TokenString;

Type

    pLDEntry = ^LDEntry;

    LDEntry = Record
            Index : LongInt;
            ID,
            Value,
            Reason : String;
            Next : pLDEntry;
    End;


    tLangDef = Class

             Private
                    Items : pLDEntry;
                    Counter : LongInt;

                    Tokens : tTokenString;

                    Procedure Parse ( FN, Language : String; Rookie : Boolean );
                    Procedure Add ( ID, Value, Reason : String );
                    Procedure Remove ( Idx : LongInt );

             Public
                   Error : Boolean;

                   Constructor Init;
                   Destructor Done;

                   Procedure Build ( Language : String; Rookie : Boolean );
                   Function Get ( ID : String ) : String;
                   Function GetByIndex ( Idx : LongInt ) : LDEntry;
                   Function IsReason ( ID : String ) : Boolean;
                   Function GetReason ( ID : String ) : String;

                   Procedure Flush;
                   Procedure Debug;
    End;

IMPLEMENTATION

...

Constructor tLangDef.Init;
Begin
     Counter := 0;
     Error := False;
     Tokens := tTokenString.Init;
     Items := Nil;
End;

Destructor tLangDef.Done;
Begin
     Flush;
     Tokens.Done;
End;


Procedure tLangDef.Add ( ID, Value, Reason : String );

Procedure AppendItem ( Var ItemList : pLDEntry; Item : pLDEntry );
Begin
     If ItemList = Nil Then ItemList := Item Else
     Begin
          If ItemList^.Next = Nil Then ItemList^.Next := Item
           Else AppendItem ( ItemList^.Next, Item );
     End;
End;

Var Item : pLDEntry;
Begin
     New ( Item );
     Item^.Index := Counter;
     Item^.ID := ID;
     Item^.Value := Value;
     Item^.Reason := Reason;
     Item^.Next := Nil;
     AppendItem ( Items, Item );
     Inc ( Counter );
End;


{
Bei folgender Funktion, wird durch das Statement "If ItemList <> Nil Then" die Exception verursacht.
}


Function tLangDef.Get ( ID : String ) : String;

Function SearchItem ( Var ItemList : pLDEntry; ID : String ) : String;
Begin
     If ItemList <> Nil Then
     Begin
          If ItemList^.ID = ID Then SearchItem := ItemList^.Value
           Else SearchItem := SearchItem ( ItemList^.Next, ID );
     End;
End;

Begin
     Get := SearchItem ( Items, UpperCase(ID) );
End;


.
.
.

Begin
End.
Ich nehm mal an, daß die Fehlersuche für euch unmöglich sein dürfte, weil ich ansonsten das gesamte Projekt hochladen müßte, es sei denn oben befindet sich was vollkommen Offensichtliches, was mir entgangen ist.
Nachdem ich das Projekt gerade auf Vermutungen hin umgeschrieben habe, befindet sich die Exception nun im Laufzeit-Code, der von Virtual Pascal generiert wird. Es hängt nun mit der Speicher-Allokierung zusammen.
Okay... ich bin so richtig schön ratlos.


[edit=FuckRacism][delphi] Syntax Mfg, FuckRacism[/edit]
  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 20:06 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