Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi eine Liste(TStringList) in einzelne Werte zerlegen (https://www.delphipraxis.net/88929-eine-liste-tstringlist-einzelne-werte-zerlegen.html)

AndY92 23. Mär 2007 07:06


eine Liste(TStringList) in einzelne Werte zerlegen
 
Ich wollte ja eigendlich kein extra thema für die frage aufmachen aber nungut
Also ich hab bastel grad an som rennspiel da soll die strecken als liste Geladen werden (und falls ich später einen editor mache auch als liste gespichert) jetzt hab ich das alles schon hinbekommen mit dem laden und speichern aber was noch fehlt ist das ich die Liste auhc benutzen kann und um sie benutzen zu können muss ich einzelne werte aus der Liste rausholen.... aber ich weis nicht wie ich ne liste in einzelne strings bzw integerwert aufteilen kann :gruebel:

Tormentor32 23. Mär 2007 07:08

Re: eine Liste(TStringList) in einzelne Werte zerlegen
 
Wie sieht denn eine Typische Zeile aus?

mkinzler 23. Mär 2007 07:11

Re: eine Liste(TStringList) in einzelne Werte zerlegen
 
Schau mal mnach .Delimiter, .DelimitedText, .CommaText und .Strings[]

AndY92 23. Mär 2007 07:36

Re: eine Liste(TStringList) in einzelne Werte zerlegen
 
Zitat:

Zitat von Tormentor32
Wie sieht denn eine Typische Zeile aus?

also eine ganze Liste sieht zB so aus:
4
2
2
3
1
0
0
1
1
0
0
1
5
2
2
6

16 zeilen pro zeile eine ziffer



Zitat:

Zitat von mkinzler
Schau mal mnach .Delimiter, .DelimitedText, .CommaText und .Strings[]

ich werds mal versuchen comma text hatte ich versucht aber da swird mir die liste nur hintereinander geschrieben ned zerteilt was ich will ist ja das ich sage der erste wert soll auf VariableA der zweite auf VariableB und so weiter


Edit: .Strings[] funktioniert - vielen dank!

Linkat 23. Mär 2007 09:06

Re: eine Liste(TStringList) in einzelne Werte zerlegen
 
Hallo Andy92,

versuchs mal damit:
Delphi-Quellcode:
s:=ListBox1.Items.Strings[i];
wobei i eine Integervariable von 0 - Listbox.IndexCount-1 ist
und s eine Stringvariable.
Viel Erfolg.

Gruß, Linkat

AndY92 23. Mär 2007 09:07

Re: eine Liste(TStringList) in einzelne Werte zerlegen
 
:-D ich habs schon hingekrigt und zwar genauso aber trotzdem danke

Nuclear-Ping 23. Mär 2007 12:06

Re: eine Liste(TStringList) in einzelne Werte zerlegen
 
Wenn deine Datei nur Zahlen (Bytes?) enthält, könntest du das aber auch effektiver binär lösen, statt mit Strings zu arbeiten (viel zu langsam). Also sprich statt 1, 4, 8, ... untereinander in eine Liste zu schreiben kannst du diese Zahlen auch in ein Array of Byte werfen und das in einem Rutsch per FileWrite in eine Datei schreiben. Auslesen kannst du den Spaß dann z.B. so:
Delphi-Quellcode:
type
  PByte = ^Byte;
var
  i, fH, fS: Integer;
  fD: Pointer;
  Data: PByte;
begin
  fH := FileOpen (...);
  if (fH = -1) then
    Fehler;
 
  // Dateigröße ermitteln
  fS := FileSeek (fH, 0, 2);
  if (fS = -1) then
    Fehler;
  FileSeek (fH, 0, 0);

  // Speicher reservieren und Datei in einem Schlag auslesen
  GetMem (fD, fS);
  if (FileRead (fH, fD^, fS) <> fS) then
    Fehler;

  // Data auf ersten Wert im Puffer zeigen lassen
  Data := fD;
  for i := 0 to fS - 1 do
    begin
      showmessage (inttostr (Data^)); // Data enthält den aktuellen Wert
      if ((i + 1) mod 16 = 0) then
        ...; // Du meintest was von 16 Zeilen = eine Zahl?
      inc (Data); // Zeiger weiterschieben, um an den nächsten Wert zu kommen
    end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:36 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