AGB  ·  Datenschutz  ·  Impressum  







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

Exeption - Woher?

Ein Thema von fortuneNext · begonnen am 16. Aug 2008 · letzter Beitrag vom 20. Aug 2008
Antwort Antwort
Seite 2 von 3     12 3      
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: Exeption - Woher?

  Alt 18. Aug 2008, 22:07
Was steht den in ID?
Markus Kinzler
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Exeption - Woher?

  Alt 18. Aug 2008, 22:11
Der Fehler kann ja nur in Buchliste[x] sein. Was für einen Wert hat x, wenn der Fehlerauftritt?
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#13

Re: Exeption - Woher?

  Alt 18. Aug 2008, 22:33
hier mal 'n kleines testprogramm:
Delphi-Quellcode:
UNIT Unit1;

INTERFACE

USES
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, csv;

TYPE
  TForm1 = CLASS(TForm)
    sg: TStringGrid;
    PROCEDURE FormCreate(Sender: TObject);
    PROCEDURE FormDestroy(Sender: TObject);
  private
    { Private-Deklarationen }
    sl: TStringList;
  public
    { Public-Deklarationen }
  END;

VAR
  Form1: TForm1;

IMPLEMENTATION

{$R *.dfm}

PROCEDURE TForm1.FormCreate(Sender: TObject);
VAR
  csv: tCSV;
  i: integer;
  j: integer;
BEGIN
  sl := TStringList.Create;
  sl.LoadFromFile('Buecher.txt');
  csv := tCSV.Create;
  TRY
    sg.ColCount := 8;
    sg.RowCount := sl.Count + 1;
    FOR i := 0 TO sl.Count - 1 DO
    BEGIN
      csv.Analyze(sl.Strings[i]);
      sg.Cells[0, i + 1] := IntToStr(i + 1);
      FOR j := 0 TO csv.Count - 1 DO
        sg.Cells[j + 1, i + 1] := csv.Columns[j];
    END;
  FINALLY
    csv.Free;
  END;
END;

PROCEDURE TForm1.FormDestroy(Sender: TObject);
BEGIN
  sl.Free;
END;

END.
Edit://Code umformatiert, da die codedarststellung in der DP recht eigensinnig ist und macht was sie will ... hoffe so ist es besser lesbar

Edit2: Kommentar von vorhin noch mal hinzugefügt, da der Editor diese vorloren hat...:

Wenn Du dir die zeilen ansiehst, sollte dir etwas bei auffallen...
Angehängte Dateien
Dateityp: exe project1_368.exe (1,83 MB, 1x aufgerufen)
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: Exeption - Woher?

  Alt 18. Aug 2008, 22:39
Warum muss die StringList global sein?
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#15

Re: Exeption - Woher?

  Alt 18. Aug 2008, 22:42
muss nicht, nur schnell reingehackt...

so, besser?

Delphi-Quellcode:
UNIT Unit1;

INTERFACE

USES
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, csv;

TYPE
  TForm1 = CLASS(TForm)
    sg: TStringGrid;
    PROCEDURE FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  END;

VAR
  Form1: TForm1;

IMPLEMENTATION

{$R *.dfm}

PROCEDURE TForm1.FormCreate(Sender: TObject);
VAR
  csv: tCSV;
  i: integer;
  j: integer;
  sl: TStringList;
BEGIN
  sl := TStringList.Create;
  TRY
    sl.LoadFromFile('Buecher.txt');
    csv := tCSV.Create;
    TRY
      sg.ColCount := 8;
      sg.RowCount := sl.Count + 1;
      FOR i := 0 TO sl.Count - 1 DO
      BEGIN
        csv.Analyze(sl.Strings[i]);
        sg.Cells[0, i + 1] := IntToStr(i + 1);
        FOR j := 0 TO csv.Count - 1 DO
          sg.Cells[j + 1, i + 1] := csv.Columns[j];
      END;
    FINALLY
      csv.Free;
    END;
  FINALLY
    sl.Free;
  END;
END;

END.
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: Exeption - Woher?

  Alt 18. Aug 2008, 23:01
Wenn du schon fragst: Warum zwei Try-Finally-Blöcke?

Aber was ich viel spannender finde: wo kommt die csv-Unit her?
Bei Delphi7 hab ich die irgendwie nicht. Oder bin ich blind?
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#17

Re: Exeption - Woher?

  Alt 18. Aug 2008, 23:14
die zwei try finally kommen daher, weil bei jeden create etwas schiefgehen kann und da das objekt noch nicht initialisiert wäre... ein abprüfen auf NIL scheidet aus, da die objekte auf den stack angelegt sind und somit vor dem initialisieren irgendeinen wert aufweisen. deswegen der verschachtelte try finally...

die CSV unit ist selbst gebastelt, hatte keine lust die stringzerlegung mit der hand nachzuvollziehen, obgleich fortuneNext im ersten post etwas entsprechendes hatte. alzheimer hatte auch mal eine CSV unit in der opensource sparte gepostet...
aber die stringzerlegung war ja hier auch nicht das problem... deswegen erlaubte ich mir die erleichterung ..., ausserrdem will ich ihm ja auch nicht die ganze arbeit abnehmen ...

schöne grüsse und noch 'n schönen abend
GG
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#18

Re: Exeption - Woher?

  Alt 18. Aug 2008, 23:19
Zitat von fortuneNext:
2. Jetzt möchten wir die Sachen sortieren, nach den div. Datentypen (also z.B. nach ID, nach Autor etc). Das wollten wir auslösen, indem man auf die "Fixed-Cols" drückt (oben wo die Beschriftung ist). Ein OnCellSelect geht leider nicht, da sich die Dinger nicht anklicken lassen. Gibt es da irgendeine Lösung oder werden wir eigene Buttons einbauen müssen? Also die Frage ist, lassen sich die Fixed Einträge zu Buttons umfunktionieren?.
kannst du das OnClick ereignis nicht verwenden? hier könntest doch abbprüfen ob in der ersten spalte/zeile oder auf etwas spezifisches gedrückt wurde und entsprechend darauf reagieren...
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#19

Re: Exeption - Woher?

  Alt 18. Aug 2008, 23:26
Zitat von grenzgaenger:
die CSV unit ist selbst gebastelt ... aber die stringzerlegung war ja hier auch nicht das problem...
Dann ist das aber kein sinnvolles Beispiel, weil es nicht nachvollziehbar ist bzw. der, dem es eigentlich helfen soll mit Fehlern zu gemüllt werden, die gar nichts mit dem eigentlichen Problem zu tun haben.

Ein Hinweis wäre da das Mindeste gewesen.
  Mit Zitat antworten Zitat
fortuneNext

Registriert seit: 11. Aug 2007
Ort: Neuss
133 Beiträge
 
Delphi 7 Enterprise
 
#20

Re: Exeption - Woher?

  Alt 19. Aug 2008, 17:10
Also ich muss sagen, das Beispiel verstehe ich wirklich nicht. Ich sehe zwar die Logik des Codes so einigermaßen ein (auch wenn ich die Unit nicht kenne), aber das hilft mir bei der Suche nach meinem Fehler überhaupt nicht.
x ist wie gesagt 1598...
und was ich auch schon schrieb (siehe post 1):
Delphi-Quellcode:
type
   TBuch = class(TObject)
   private
   {}
   public
   ID: integer;
        Thema: string;
        Autor: string;
        Titel: string;
        Ort: string;
        Erscheinungsjahr: integer;
        Verlag: string;
   end;
Weiss einer wo das Problem liegt?
Manchmal wünscht ich, in diesem Fach könnte einem der Lehrer zumindest manchmal weiterhelfen...
Tim
"Hilfe & Support konnte nicht geöffnet werden. Bitte öffnen sie Hilfe & Support, um das Problem zu beheben."
"No Keyboard found. Press F1 to continue."
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 19:54 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