AGB  ·  Datenschutz  ·  Impressum  







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

ListBox und array

Ein Thema von EWeiss · begonnen am 14. Mär 2011 · letzter Beitrag vom 14. Mär 2011
Antwort Antwort
Seite 2 von 4     12 34      
EWeiss
(Gast)

n/a Beiträge
 
#11

AW: ListBox und array

  Alt 14. Mär 2011, 16:04
Ich kann ja die Textdatei komplett einlesen und anschließend über den Delemiter Komma parsen
Ich möchte es mir aber einfach machen und das parsen direkt beim einlesen der Textdatei erledigen.

gruss
Und was hindert dich daran das mit einer TStringList zu machen, als den umständlichen Weg eine Datei zu Parsen? Geschweige das Format zu erstellen.

Hiermal ein kleines Beispiel:
G:\Musik\PLAYER1\02 Begin.wav=02 Begin;10;0,00;0,00;0;0;0;0;0;1
G:\Musik\PLAYER1\rauschen.wav=rauschen;10;0,00;0,0 0;0;0;0;0;0;1
G:\Musik\PLAYER1\10 Geier_ S21.wav=10 Geier_ S21;10;0,00;0,00;0;0;0;0;0;1

alfold
sorry das sagt mir nichts.
Ich glaube ich bin zu blöd mich richtig auszudrücken.

Oder mich versteht keiner.

gruss

Geändert von EWeiss (14. Mär 2011 um 16:07 Uhr)
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#12

AW: ListBox und array

  Alt 14. Mär 2011, 16:10
Ein TStringList ist fast Temporär, ob du sie speicherst oder nur zum einlesen deiner DatenListe nimmst und danach verwirfst bleibt dir überlassen!

alfold
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: ListBox und array

  Alt 14. Mär 2011, 16:10
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.
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#14

AW: ListBox und array

  Alt 14. Mär 2011, 16:14
... weil es die TStringList für dich tut.
Nicht ganz, bischen muss man noch selber machen

alfold
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#15

AW: ListBox und array

  Alt 14. Mär 2011, 16:17
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.
Dann wäre das doch ideal nur wie geht das ...
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

Geändert von EWeiss ( 9. Jul 2019 um 08:33 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: ListBox und array

  Alt 14. Mär 2011, 16:31
Hallo Emil,
Zitat von EWeiss:
Dann wäre das doch ideal nur wie geht das
Bin mir nicht sicher ob es genau so richtig ist, aber in etwa so:
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;
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#17

AW: ListBox und array

  Alt 14. Mär 2011, 16:36
Hallo Emil,
Zitat von EWeiss:
Dann wäre das doch ideal nur wie geht das
Bin mir nicht sicher ob es genau so richtig ist, aber in etwa so:
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;
Ja so habe ich mir das gedacht ...
Und dann kann ich den Index 1,2,3 direkt ansprechen ?
Ohne im nachhinein nochmal zu parsen ?

Werde es mal versuchen.

Danke!

gruss
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#18

AW: ListBox und array

  Alt 14. Mär 2011, 16:39
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

Geändert von alfold (14. Mär 2011 um 16:42 Uhr)
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#19

AW: ListBox und array

  Alt 14. Mär 2011, 16:40
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:
TInstrument = class(TObject)
public
  Name : string;
  ProgrammNo: integer;
  SchlagInstr: Boolean;
  procedure LoadFromCSV(const line:string); // befüllt die Werte aus einem CSV-String
end;
Es ist hier nicht einmal notwendig, echte Properties einzuführen, da die Klasse "intern" verwendet wird und nicht unbedingt diesen Schutz benötigt.
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;
Andreas
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#20

AW: ListBox und array

  Alt 14. Mär 2011, 16:46
Doch würde er schon, nur den Aufwand dahin würde er gerne überspringen.
So nach ...ne txt datei einlesen sooo viel Aufwand

alfold
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 22:22 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