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 1 von 2  1 2      
Benutzerbild von juergen
juergen

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

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
 
#2

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
 
#3

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.176 Beiträge
 
Delphi 11 Alexandria
 
#4

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
 
#5

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
 
#6

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
 
#7

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
 
#8

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
EWeiss
(Gast)

n/a Beiträge
 
#9

AW: ListBox und array

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

alfold
Darum geht es nicht.
Es hat auch nichts mit dem Einlesen der TextDatei zu tun sondern damit
Das in der Liste eingelesenen Array so einfach wie möglich zu bedienen,

Sample!
Hoffe du verstehst jetzt.
Ich klicke in meine ListBox abhängig vom Index (Selektierter eintrag)
Möchte ich 2 Funktionen ausführen.

Delphi-Quellcode:
    SetCTRL(32, ListView1.SelectedItem.SubItems(1), Channel)
    SetINST(ListView1.SelectedItem.SubItems(2), Channel)
verstehst?

Subitem 1 = 18
Subitem 2 = 0

Nicht mehr oder weniger will ich erreichen
Ohne die Datei oder Zeile nochmal parsen zu müssen.

Und so wie es aussieht ist es genau das was Jürgen eingebracht hat.

gruss

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

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

AW: ListBox und array

  Alt 14. Mär 2011, 17:09
jo, und da hast Du uns nicht verstanden.
Egal ob in Listview oder Array oder Record. Einmal einlesen und dann mit den indizen arbeiten. Ein nochmaliges einlesen war auch bei uns nicht vorgesehen.

alfold
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 05:15 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