AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi eine Liste(TStringList) in einzelne Werte zerlegen
Thema durchsuchen
Ansicht
Themen-Optionen

eine Liste(TStringList) in einzelne Werte zerlegen

Ein Thema von AndY92 · begonnen am 23. Mär 2007 · letzter Beitrag vom 23. Mär 2007
Antwort Antwort
AndY92
(Gast)

n/a Beiträge
 
#1

eine Liste(TStringList) in einzelne Werte zerlegen

  Alt 23. Mär 2007, 08:06
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
  Mit Zitat antworten Zitat
Benutzerbild von Tormentor32
Tormentor32

Registriert seit: 27. Okt 2005
Ort: Düsseldorf
369 Beiträge
 
Delphi XE5 Professional
 
#2

Re: eine Liste(TStringList) in einzelne Werte zerlegen

  Alt 23. Mär 2007, 08:08
Wie sieht denn eine Typische Zeile aus?
Richard Mahr
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: eine Liste(TStringList) in einzelne Werte zerlegen

  Alt 23. Mär 2007, 08:11
Schau mal mnach .Delimiter, .DelimitedText, .CommaText und .Strings[]
Markus Kinzler
  Mit Zitat antworten Zitat
AndY92
(Gast)

n/a Beiträge
 
#4

Re: eine Liste(TStringList) in einzelne Werte zerlegen

  Alt 23. Mär 2007, 08:36
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 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!
  Mit Zitat antworten Zitat
Linkat

Registriert seit: 3. Dez 2004
Ort: nr Stuttgart
62 Beiträge
 
Delphi 2009 Professional
 
#5

Re: eine Liste(TStringList) in einzelne Werte zerlegen

  Alt 23. Mär 2007, 10:06
Hallo Andy92,

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

Gruß, Linkat
  Mit Zitat antworten Zitat
AndY92
(Gast)

n/a Beiträge
 
#6

Re: eine Liste(TStringList) in einzelne Werte zerlegen

  Alt 23. Mär 2007, 10:07
ich habs schon hingekrigt und zwar genauso aber trotzdem danke
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#7

Re: eine Liste(TStringList) in einzelne Werte zerlegen

  Alt 23. Mär 2007, 13:06
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;
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:37 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