![]() |
Re: Zeilen mit Stringliste bis zu bestimmten Zeichen auslese
Ich glaube der Fehler liegt woanders, da ich auch kein Delphi 5 verwende.
Es kommt immer noch zu einem Exception Fehler, wenn ich auf Datei öffnen klicke. Anschliessend klicke ich die Datei an, es ist eine Textdatei in C:\ mit den 3 Beispielzeilen im ersten Post. Dann kommt es zu einer EAccessViolation ... Auf Fortsetzen klicken kommt die nächste, anschliessend kommt, konnte Datei nicht öffnen. Aber die Datei ist vorhanden.... |
Re: Zeilen mit Stringliste bis zu bestimmten Zeichen auslese
In welcher Zeile stoppt der Debugger?
|
Re: Zeilen mit Stringliste bis zu bestimmten Zeichen auslese
Delphi-Quellcode:
In dieser Spalte
Itemnamen.Items.Assign(ItemListe);
EDIT : Ich habe bei der von marabu geposteten Funktion vor das sOut.Clear ein sOut.Create hinzugefügt damit die Liste auch kreeiert wird...
Delphi-Quellcode:
procedure ExtractNames(sIn, sOut: TStrings);
var i: Integer; begin sOut.Create; // von mir hinzugefügt // sOut.Clear; for i := 0 to Pred(sIn.Count) do sOut.Add(sIn.Names[i]); end; |
Re: Zeilen mit Stringliste bis zu bestimmten Zeichen auslese
So geht das nicht. Wenn du die Namensliste in der Funktion selbst erzeugen möchtest, dann so:
Delphi-Quellcode:
marabu
procedure CreateNames(s: TStrings): TStrings;
var i: Integer; begin Result := TStringList.Create; for i := 0 to Pred(s.Count) do Result.Add(s.Names[i]); end; |
Re: Zeilen mit Stringliste bis zu bestimmten Zeichen auslese
Marabu, kleinen Fehler haste gemacht, das ist jetzt ne Funktion! Aber trotzdem vielen Dank für eure Mühen, da stand ich echt auffm Schlauch....
Dankeschön an alle! |
Re: Zeilen mit Stringliste bis zu bestimmten Zeichen auslese
Zitat:
marabu |
Re: Zeilen mit Stringliste bis zu bestimmten Zeichen auslese
Delphi-Quellcode:
Mich hat der Ehrgeiz gepackt und ich wollte versuchen eine Funktion zu schreiben, die jeweils den Teilstring aus der Datei extrahiert, der bei anf anfängt und bei ende aufhört...
function TForm1.CreateTypLists(fn: TFileName; anf : char; ende : char) : TStrings;
var i, ianf, iende : integer; s : string; begin Result := TStringList.Create; with Result do begin LoadFromFile(fn); for i := 0 to Pred(Count) do begin ianf := pos( 'anf' , Strings[i]); iende := pos( 'ende' , Strings[i]); s := copy(Strings[i], ianf, iende); Result.Add(s); end; end; end; Hm, Problem ist : Es funktioniert nicht, er gibt immer die gesamten Strings aus... Danke im Vorraus den Helfenden ... |
Re: Zeilen mit Stringliste bis zu bestimmten Zeichen auslese
Du gibst als Parameter anf und ende vor, suchst aber nach den Literalen 'anf' und 'ende' - so kann es nicht funktionieren.
marabu |
Re: Zeilen mit Stringliste bis zu bestimmten Zeichen auslese
Delphi-Quellcode:
Trotz der Richtigstellung mit dem Iteral Fehler funktioniert es immer noch nicht...
ItemTypeListe := CreateTypLists(OpenDialog.Filename, #91 , #93 );
ListBox1.Items.Assign(ItemTypeListe) Frage : Wenn in der ersten Zeile keines der Zeichen gefunden werdne kann, dann gibt er aber trotzdem für die Zeilen in denen er das Anfangs und Endzeichen findet, den richtigen String aus, oder? |
Re: Zeilen mit Stringliste bis zu bestimmten Zeichen auslese
Probiere es mal so:
Delphi-Quellcode:
Getippt und nicht getestet.
function TForm1.CreateTypLists(fn: TFileName; cStart, sStop: Char): TStrings;
var i, iStart, iStop: Integer; s: String; begin Result := TStringList.Create; Result.LoadFromFile(fn); for i := Pred(Result.Count) downto 0 do begin iStart := Pos(cStart, Result[i]); iStop := Pos(cStop, Result[i]); if (iStart = 0) or (iStop < iStart) then Result.Delete(i); end; end; marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:37 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