![]() |
TextFile und System.Seek machen im Zusammenspiel Probleme
Ich habe folgendes Problem:
Ich möchte auf Daten in einer CSV_Datei zugreifen. Um dies möglichst komfortable zu gewährleisten, habe ich ein Objekt erstellt TCSVManager. Dieses Objekt besitzt u.a. das Attribute FFile vom Typ TextFile mit der CSV-Datei.
Code:
Nun mein Problem:TCSVManager = class(TComponent) private FFile: TextFile; Protected Function GetColNo: Integer; ... end;
Delphi-Quellcode:
function TCSVManager.GetColNo: Integer;
var S: String; begin Seek(FFile, 0); ReadLn(FFile, S); Result := Explode(S, ';').Count; end; Wenn ich in der Funktion die Procedure System.Seek verwenden will, um die Position auf die Zeile in der Datei zu bestimmen, dann nervt mich Delphi mit einer Exception “Inkompatible Typen“, welche ich mir hier nicht erklären kann. Wenn ich meiner Literatur und dem ![]() Also, wenn hier einer eine Idee hat, dann wäre ich sehr dankbar. Greetings Scouty |
Re: TextFile und System.Seek machen im Zusammenspiel Problem
Liste der Anhänge anzeigen (Anzahl: 1)
also die Delphi Hilfe meinte was anderes ..
|
Re: TextFile und System.Seek machen im Zusammenspiel Problem
Danke, dann muss ich das übersehen haben. Aber wie kann ich mich dann in einer Textdatei auf eine bestimmte Zeile bewegen???
Greetings Joerg |
Re: TextFile und System.Seek machen im Zusammenspiel Problem
Hallo Jörg!
Da gibt es 2 Möglichkeiten: 1. die Textdatei zeilenweise mit ReadLn einlesen bis die gesuchte Zeile da ist. Ändern von Zeilen ist dann allerdings nicht möglich (oder es wird eine neue Datei geschrieben). Außerdem müssen die Zeilen in Reihenfolge bearbeitet werden - ein "Zurückspulen" der Datei ist nicht möglich. 2. die Datei mit LoadFromFile in eine Stringlist einlesen. Dann kannst Du einzelne Zeilen in beliebiger Reihenfolge ändern und danach das Ganze mit SaveToFile wieder auf die Platte packen. Die 2. Methode ist Windows-Konform, braucht aber viel Speicher (nach Windows wird normalerweise die ganze Datei in den Speicher gelesen - wir haben ja 2 GB). Deshalb bevorzuge ich die erste Variante! Gruß Dietmar Brüggendiek |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:08 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