AGB  ·  Datenschutz  ·  Impressum  







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

liste in schleife laden

Ein Thema von toredo · begonnen am 9. Aug 2006 · letzter Beitrag vom 9. Aug 2006
Antwort Antwort
toredo

Registriert seit: 6. Apr 2006
Ort: Oberriet
210 Beiträge
 
Delphi 7 Enterprise
 
#1

liste in schleife laden

  Alt 9. Aug 2006, 20:46
hallo,

weiss hier jemand wie ich in etwa so einen code machen kann, im erklären bin ich leider ned so gut drum hab ich mal versucht so nen "beispielcode" zu basteln:

es existiert eine datei mit "einträgen", der inhalt ist z.B. so:
Zitat:
lol; hoi; edou; gova;
sie heisst data.dat und delp liegt im selben verzeichnis wie die exe:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
i, a: integer;
eintrag: string;
begin
a:=? //anzahl einträge in der data.dat
for i:=1 to a do
begin
eintrag:=? //i'ter eintrag in der data.dat
//irgendein code:
//----------------
ShowMessage('eintrag');
//----------------
end;
...
ich hoffe jemand versteht was ich meine.


mfG toredo
Benj Meier
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: liste in schleife laden

  Alt 9. Aug 2006, 20:51
Lade die Datei in eine StringList und splitte den String dann auf mit dieser Funktion aus der Codelib:

Delphi-Quellcode:
function Split(const fText: String; const fSep: Char; fTrim: Boolean=false; fQuotes: Boolean=false):TStringList;
var vI: Integer;
    vBuffer: String;
    vOn: Boolean;
begin
  Result:=TStringList.Create;
  vBuffer:='';
  vOn:=true;
  for vI:=1 to Length(fText) do
  begin
    if (fQuotes and(fText[vI]=fSep)and vOn)or(Not(fQuotes) and (fText[vI]=fSep)) then
    begin
      if fTrim then vBuffer:=Trim(vBuffer);
      if vBuffer='then vBuffer:=fSep; // !!! sonst läuft z.B. split(',**',',') auf einen Hammer...
      if vBuffer[1]=fSep then
        vBuffer:=Copy(vBuffer,2,Length(vBuffer));
      Result.Add(vBuffer);
      vBuffer:='';
    end;
    if fQuotes then
    begin
      if fText[vI]='"then
      begin
        vOn:=Not(vOn);
        Continue;
      end;
      if (fText[vI]<>fSep)or((fText[vI]=fSep)and(vOn=false)) then
        vBuffer:=vBuffer+fText[vI];
    end else
      if fText[vI]<>fSep then
        vBuffer:=vBuffer+fText[vI];
  end;
  if vBuffer<>'then
  begin
    if fTrim then vBuffer:=Trim(vBuffer);
    Result.Add(vBuffer);
  end;
end;
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#3

Re: liste in schleife laden

  Alt 9. Aug 2006, 20:53
Hallo,

ich hatte mal ein ähnliches Problem.
Ich wollte einen String, bei dem Einträge mit einem Trenn-Zeichen getrennt sind, wieder aufzusplitten.

Anbei ein Test-Programm von mir.
Angehängte Dateien
Dateityp: zip test_string_copy_246.zip (222,1 KB, 5x aufgerufen)
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
toredo

Registriert seit: 6. Apr 2006
Ort: Oberriet
210 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: liste in schleife laden

  Alt 9. Aug 2006, 20:58
danke ich werde den code gleich ausprobieren, falls es probleme gibt poste ich sie ansonsten prog ich weiter.


mfG toredo

-edit-
@helmi werd ich gleich auch noch anschauen, thx


mfG toredo
Benj Meier
  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 15:05 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