AGB  ·  Datenschutz  ·  Impressum  







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

Datei "seeken"

Ein Thema von Rapthor · begonnen am 4. Mär 2003 · letzter Beitrag vom 5. Mär 2003
Antwort Antwort
Rapthor

Registriert seit: 30. Nov 2002
139 Beiträge
 
#1

Datei "seeken"

  Alt 4. Mär 2003, 18:12
*Luft holt*
Ich habe eine Textdatei, die untereinander aufgelistet Strings beinhaltet (irgendwelche Benutzernamen eines Netzwerks z.B.).
Was muss ich in den Quelltext schreiben damit die Routine nacheinander diese Namen ausliest? Ich will damit so eine Art Zeiger erhalten der vom ANFANG bis zum ENDE dieser Datei geht ("seek") und nach jedem Schritt den jeweils zutreffenden String auslesen kann.
Geht das mit ner While Schleife die das EOF beinhaltet? Wenn ja, wie genau sieht das aus? Wenn nein, welche andere Lösung gibts?
Dank im Voraus
Rapthor
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#2
  Alt 4. Mär 2003, 18:16
Es geht, aus meiner Sicht auch einfacher.
Delphi-Quellcode:
var
  I: Integer;
  SL: TStringList;
begin
  SL := TStringList.Create;
  try
    SL.LoadFromFile('C:\Temp\DateiMitZeilen.txt');
    for I := 0 to Pred(SL.Count) do
      ShowMessage(SL[I]);
  finally
    SL.Free;
  end;
end;
......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Rapthor

Registriert seit: 30. Nov 2002
139 Beiträge
 
#3

Klappt super

  Alt 4. Mär 2003, 19:28
Danke, das klappt wirklich gut
ABER wie siehts jetzt aus, wenn ich anstatt einer Textdatei eine Combobox auslesen will? Also alle Einträge nacheinander von oben nach unten durchgehen und ausgeben lassen ....
Thx
Rapthor
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#4
  Alt 4. Mär 2003, 19:48
Hallo,

das geht genauso.
for i := 0 to ComboBox.Items.Count -1 do.
Schau Dir das in der OH an!!! Da ist es so schön beschrieben!

Grüsse, Daniel
  Mit Zitat antworten Zitat
Rapthor

Registriert seit: 30. Nov 2002
139 Beiträge
 
#5
  Alt 4. Mär 2003, 21:24
Es geht nicht ganz ...
was heißt die -1 hinter dem Count?
Mein Quelltext lautet folgendermaßen

Code:
begin
       SL := TStringList.Create;
     try
        for I := 0 to UserListe.Items.Count -1 do
          ShellExecute(Handle, nil, 'c:\windows\system32\net.exe', PChar('send ' + SL[I] + ' ' + Parameter1.Text), nil, SW_HIDE);
        finally
        SL.Free;
    end;
Ich erhalte jetzt die Fehlermeldung: List Index out of bounds (0)

Was mach ich falsch?
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#6
  Alt 4. Mär 2003, 21:35
Zitat von Rapthor:
Es geht nicht ganz ...
was heißt die -1 hinter dem Count?
Beispiel, Deine CB hat 6 Einträge, dann ist der Items.Count = 6.
Wenn man jetzt die Schleife von 0 bis Items.Count laufen lässt, dann sind das sieben! durchläufe. Du willst aber nur sech. Also, 0 bis Items.Count minus eins. Also 0 bis 5. Somit hat man 6 durchläufe.
Wenn Dir das aber zu blöd ist, dann schreib 1 to Items.Count do, kommt aufs gleiche raus. Was Dir besser gefällt. Das gilt allgemein für Schleifen.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Rapthor

Registriert seit: 30. Nov 2002
139 Beiträge
 
#7

Seltsam

  Alt 5. Mär 2003, 08:12
Seltsam seltsam .... warum funzt das nicht?
Mal die Frage anders gestellt:
Welche Routine ermittelt mir einfach nur das n , das die Anzahl der in der Combobox gespeicherten Einträge (=Zeilen) ausliest?
Rapthor
  Mit Zitat antworten Zitat
Delphianer

Registriert seit: 19. Feb 2003
Ort: Rossau
149 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#8
  Alt 5. Mär 2003, 09:32
Hallo,

wenn ich das richtig sehe, läuft Dein Index I bis
UserListe.Items.Count -1,
mit diesem Index greifst Du aber auf die Liste SL zu. In Deinem Codebeispiel hat SL überhaupt keine Einträge, damit kommst Du automatisch out of bounds.
Ich weiß jetzt nicht, was die UserListe genau ist, wenn ich mal annehme, daß die einzelnen Einträge in UserListe.Items stehen, sollte es so gehen:

for I := 0 to UserListe.Items.Count -1 do
ShellExecute(Handle, nil, 'c:\windows\system32\net.exe',
PChar('send ' + UserListe.Items[I] + ' ' + Parameter1.Text),
nil, SW_HIDE);

Viele Grüße
Lutz
  Mit Zitat antworten Zitat
Rapthor

Registriert seit: 30. Nov 2002
139 Beiträge
 
#9
  Alt 5. Mär 2003, 21:26
Danke für die sehr hilfreiche Antwort ... jetzt klappt alles prima !!!
  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 08:31 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