![]() |
Re: Spaltenweise auf TStringList zugreifen
Habs hinbekommen. Also er meckert an jeder Stelle, wo Zeilenanzahl aufgerufen wird.
z.b.
Delphi-Quellcode:
if Zeilenanzahl = Sek.Count -1 then exit;
|
Re: Spaltenweise auf TStringList zugreifen
Woran kann das liegen? Hab ich die Property falsch deklariert?oder etwas vergessen
|
Re: Spaltenweise auf TStringList zugreifen
Bitte nicht vor Ablauf von 24 Stunden pushen :warn:
|
Re: Spaltenweise auf TStringList zugreifen
Eine Zugriffsverletzung bekommt man meißtens wenn man etwas nicht erstellt hat:
Das hier geht wunderbar
Delphi-Quellcode:
Während das hier zur einer AV (= Accessviolatuion = Zugriffsverletzung) führt:
Meins := TStringList.Create;
try // Mit "Meins" arbeiten // z.B. eine Zeile hinzufügen Meins.Add('Hallo Welt'); finally Meins.Free; end;
Delphi-Quellcode:
Ich tippe mal darauf (ausgehend von dem Codestück aus dem Post #47), dass Sek nicht erstellt wurde.
try
// Mit "Meins" arbeiten // z.B. eine Zeile hinzufügen Meins.Add('Hallo Welt'); // <!--- Hier knallt es, weil "Meins" nicht erstellt wurde finally Meins.Free; end; Könntest du uns vielleicht mal etwas mehr Code zeigen? Also alles bis zum Exit dürfte erstmal reichen. MfG xZise |
Re: Spaltenweise auf TStringList zugreifen
Ok, also bis zum xis sieht das so aus:
Delphi-Quellcode:
Zeileananzahl habe ich als property deklariert und da wird auch irgendwo der Knackpunkt sein. Sek wurde bereits erstellt. (u.a. in #20 sichtbar)
procedure ZehnMinTimerEvent(Sender: TObject);
var Sek, Min, ZwSpeicher : TStringList; DreiSek, ZehnMin: string; TabPos, Spaltenanzahl, linenum : integer; begin DreiSek := extractfilepath(application.exename)+'Mom3sek_'+Kennung+'.txt'; ZehnMin := extractfilepath(application.exename)+'Mom10min_'+Kennung+'.txt'; TestDatei := TFileStream.Create(ExtractFilePath(application.exename)+'test.txt',fmOpenReadWrite); TestDatei.Seek(0, soFromEnd); Sek := TStringList.Create; Min := TStringList.Create; ZwSpeicher := TStringList.Create; try Sek.LoadFromFile(DreiSek); if Zeilenanzahl = Sek.Count-1 then exit; |
Re: Spaltenweise auf TStringList zugreifen
Zitat:
Das müsste doch eigentlich eine Methode einer Klasse sein, wie sonst kannst du auf die Eigenschaft Zeilenanzahl zugreifen? Und sonst ginge das auch gar nicht als Timer-Ereignis. Das kann so also eigentlich nicht der originale Code sein, wenn sich das kompilieren lässt. :gruebel: |
Re: Spaltenweise auf TStringList zugreifen
Delphi-Quellcode:
ach gott, nee da steht eigentlich
procedure ZehnMinTimerEvent(Sender: TObject);
Delphi-Quellcode:
procedure TMomFiles.ZehnMinTimerEvent(Sender: TObject);
|
Re: Spaltenweise auf TStringList zugreifen
Ich hatte mich nur gefragt, ob du sonst beim Kopieren / Abschreiben noch andere Fehler eingebaut hast... ;-)
Denn der Quelltext sieht soweit funktionierend aus. :gruebel: Da beim Zugriff auf die Property ein Fehler passiert, setze bitte einmal einen Haltepunkt auf diese Zeile, drücke wenn das Programm dort ankommt Strg + F7 und werte Self aus. Vermutung: Das könnte nil sein. Schau da einmal nach, bevor ich da noch viel zu schreibe, wenn es doch nicht so sein sollte. |
Re: Spaltenweise auf TStringList zugreifen
Wenn ich F7 drücke, passiert aber nix.
|
Re: Spaltenweise auf TStringList zugreifen
Strg + F7, nicht nur F7. Dann sollte, wenn das Programm am Haltepunkt angehalten hat, das Fenster zum Auswerten eines Ausdrucks angezeigt werden. Dort kannst du dann Self hineinschreiben um zu schauen was das (also der aktuelle Objektzeiger zu der Methode) für einen Wert hat.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:21 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