AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi nach String suchen und den nachfolgenden String verwenden
Thema durchsuchen
Ansicht
Themen-Optionen

nach String suchen und den nachfolgenden String verwenden

Ein Thema von Matthias123 · begonnen am 31. Okt 2006 · letzter Beitrag vom 31. Okt 2006
Antwort Antwort
Matthias123

Registriert seit: 11. Sep 2006
16 Beiträge
 
#1

nach String suchen und den nachfolgenden String verwenden

  Alt 31. Okt 2006, 13:41
Hallo, ich möchte die in einer Textdatei abgespeicherten Daten zu den Ranglisten in meinem Programm verwenden.

abgespeichert sind sie in der Textdatei folgendermaßen:

Name Rang
Johannes 48
Thomas 64
Peter 2
.
.
usw.

ich möchte jetzt zB. Peters Rang ausgeben. Wie mache ich das?
(Habe eine halbe Stunde Beiträge über "string[pos]" und ähnliches gelesen, bin aber nicht klüger geworden)
Danke für Eure Hilfe!
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: nach String suchen und den nachfolgenden String verwende

  Alt 31. Okt 2006, 13:44
Name Rang
Johannes 48
Thomas 64
Peter 2

sollte in etwas so gehen

rang:=copy(string,pos(' ',string)+1,length(string)); Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Matthias123

Registriert seit: 11. Sep 2006
16 Beiträge
 
#3

Re: nach String suchen und den nachfolgenden String verwende

  Alt 31. Okt 2006, 14:14
hi klaus,

danke für die schnelle Antwort, leider funktioniert es irgendwie nicht.
Ich stell mal die Prozedur rein.

Bei "pos:= ..usw" kommen drei Fehlermeldungen und bei rang:= .. ebenfalls

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
  sl: TStringlist;
  position: Byte;
  rang: string;
begin
  sl:=TStringList.create;
  sl.loadfromFile('C:\Platz.txt');
  pos := sl.strings.indexof('Peter');
  rang := sl.Strings[pos][' ',string)+1,length(string));
// position := pos(Form1.Caption, sl); // position ist nun 13
  button4.Caption := sl.string[pos];
  sl.free;

end;
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: nach String suchen und den nachfolgenden String verwende

  Alt 31. Okt 2006, 14:24
Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
  sl: TStringlist;
  position: Byte;
  rang: string;
  s :String;
  i:Byte;
begin
  sl:=TStringList.create;
  sl.loadfromFile('C:\Platz.txt');
  for i:=0 to sl.count -1 do
    begin
      s:=sl[i];
      if pos('Peter',s) <> 0 then
        rang:=copy(s,pos(' ',s)+1,length(s));
      // tu was mit dem Rang
    end;
// button4.Caption := sl.string[pos];
  sl.free;

end;
ein wenig umgebaut, unter der Annahme das der Name und Rang in einer Zeile stehen und
durch ein Leerzeichen getrennt sind.

sl.IndexOF liefert nur eine Position wenn der gesamte String übereinstimmt, mit einem
Teilstring wie z.B. Peter funktioniert das nicht.

pos ist eine Funktion welche die Position eines Teilstring in einem String zurückgibt.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#5

Re: nach String suchen und den nachfolgenden String verwende

  Alt 31. Okt 2006, 14:31
Zitat von Matthias123:
danke für die schnelle Antwort, leider funktioniert es irgendwie nicht.
Ich stell mal die Prozedur rein.

Bei "pos:= ..usw" kommen drei Fehlermeldungen und bei rang:= .. ebenfalls
Du könntest uns auch sagen welche Fehler auftreten
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#6

Re: nach String suchen und den nachfolgenden String verwende

  Alt 31. Okt 2006, 14:47
Hallo Matthias123,

kannst du den Aufbau der Textdatei ändern? Ich würde dir zu einem anderen Trennzeichen raten, um eventuelle Fehler zu vermeiden. Wie gehst du beispielsweise mit Doppelnamen um, die nicht durch einen Bindestrich verbunden sind ("Hans Peter")?

Wenn du als Trennzeichen das "=" nimmst, kannst du die Eigenschaft Delphi-Referenz durchsuchenTStrings.Values der Stringliste nutzen:

Delphi-Quellcode:
var
  sl : TStringList;
  Rang : Integer;
begin
  sl := TStringList.Create;
  sl.LoadFromFile('C:\Platz.txt');
  Rang := StrToIntDef(sl.Values['Hans Peter'], -1);
  sl.Free;
end;
Ab Delphi 2005 ist das Trennzeichen frei wählbar (NameValueSeparator).

Gruß Hawkeye
  Mit Zitat antworten Zitat
Matthias123

Registriert seit: 11. Sep 2006
16 Beiträge
 
#7

Re: nach String suchen und den nachfolgenden String verwende

  Alt 31. Okt 2006, 15:01
Klaus01, es funkioniert DANKE! Ich dachte schon das wird nie was. Ich werds mir merken Hawkeye219! Die Textdatei kann ich nach meinen Wünschen gestalten, also wäre es gut möglich.

Also schönen Feiertag an alle.
  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:49 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