![]() |
AW: ListBox und array
Zitat:
Ich glaube ich bin zu blöd mich richtig auszudrücken. Oder mich versteht keiner. gruss |
AW: ListBox und array
Ein TStringList ist fast Temporär, ob du sie speicherst oder nur zum einlesen deiner DatenListe nimmst und danach verwirfst bleibt dir überlassen!
alfold |
AW: ListBox und array
Hallo,
ich habe es nicht genau im Kopf, aber die TStringList hat von Hause aus schon alles nötige für Delemiter implementiert. Somit brauchst du nichts zu parsen, weil es die TStringList für dich tut. :-D |
AW: ListBox und array
Zitat:
alfold |
AW: ListBox und array
Zitat:
Habe mal ein Bild angehängt ohne die TextDatei geparst zu haben. Ich lade die Liste so ein.
Delphi-Quellcode:
if InstrumentList.ListCount(SKAERO_GetMainItem(ID_INSTRUMENTLIST)) = 0 then
begin InstList := TStringList.Create; try InstList.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'Config\Instrument.txt'); for IntI := 0 to InstList.Count -1 do InstrumentList.ListAdd(SKAERO_GetMainItem(ID_INSTRUMENTLIST),InstList.Strings[IntI]); finally InstList.Free; end; end; Dann sind die einzelnen zeilen aber nicht geparst innerhalb der TStringList Ich kann Arrays erstellen und parsen kein problem ich möchte es nur einfach halten von der bedienung her. Und ein Listview macht das für mich in dem ich einfach die Subitems addiere. Die InstList hat KEINE Subitems darum geht es mir. gruss |
AW: ListBox und array
Hallo Emil,
Zitat:
Delphi-Quellcode:
var sl : TStringlist;
begin sl := TStringlist.Create; try sl.Delimiter := ';'; sl.DelimitedText := 'Hallo1;"Test1 Test2 Test3";Hallo2;Hallo3'; //sl[0] => Hallo1 //sl[1] => Test1 Test2 Test3 //sl[2] => Hallo2 //sl[3] => Hallo3 finally FreeAndNil(sl); end; end; |
AW: ListBox und array
Zitat:
Und dann kann ich den Index 1,2,3 direkt ansprechen ? Ohne im nachhinein nochmal zu parsen ? Werde es mal versuchen. Danke! gruss |
AW: ListBox und array
Mal ehrlich, alles was nun mal in einem einfachen Format einer TXT Datei ist, muss man halt Parsen wenn man es in einem bestimmten Format haben will!
Du hast aber noch die Möglichkeit mit ini zu arbeiten. Aber auch dort muss man beim einlesen wieder 'parsen' dorthin wo man es will oder wie es aussehen soll! Egal was Du nun machst, um es in ein richtigen Format zu erhalten musst Du es 'parsen'. Auch wenn Du es schön speicherst das einlesen bleibt immer als 'parsen'. Selbst ne DB ist beim Speichern/einlesen nichts anderes. Ne einfach Möglichkeit gibt es nun mal nicht dafür! siehe mein Beispiel. alfold |
AW: ListBox und array
Du willst einfach nicht in Objekten bzw. Klassen denken. :(
(Mein letzter Versuch) Die Klasse TStrings bzw. TStringList bringt schon alles mit, um eine Liste von Namen zusammen mit weiteren Daten (=Objekte) zu verwalten. Bitte kein Array verwenden. Es gibt 2 Klassen: 1.) eine ganz einfache Klasse, die die Daten aufnimmt. Pro Wert gibt es ein Property oder Member-Variable.
Delphi-Quellcode:
Es ist hier nicht einmal notwendig, echte Properties einzuführen, da die Klasse "intern" verwendet wird und nicht unbedingt diesen Schutz benötigt.
TInstrument = class(TObject)
public Name : string; ProgrammNo: integer; SchlagInstr: Boolean; procedure LoadFromCSV(const line:string); // befüllt die Werte aus einem CSV-String end; 2.) eine Ableitung von TStringList
Delphi-Quellcode:
TInstrumentList = class(TStringList)
public procedure AddInstrument(instr : TInstrument); procedure FreeInstruments; procedure LoadInstrumentsFromFile(const filename:string); end; procedure TInstrumentList.AddInstrument(instr : TInstrument); begin AddObject(instr.Name, instr); end; procedure TInstrumentList.FreeInstruments; var i : integer; begin for i := Count-1 downto 0 do begin Objects[i].Free; delete(i); end; end; |
AW: ListBox und array
Doch würde er schon, nur den Aufwand dahin würde er gerne überspringen.
So nach ...ne txt datei einlesen sooo viel Aufwand:wink: alfold |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:58 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