![]() |
Suchen, vergleichen
Hi,
ich schriebe jetzt mal ein Programm, bzw. ich versuche es, mit dem man in einem Spiel etwas formatieren kann. Naja...ich hab folgendes Problem: Die zu formatierende Liste ist allerdings unterschiedlich, deshalb muss ich nach bestimmten begriffen suchen. Meine erste Frage: Wie durchsuche ich einen String nach bestimmten Begriffen? So dann hab ich noch eine Frage: Ich habe einen String. Ich möchte gerne wissen ob an der Stelle x in diesem String ein "Integer" also eine Zahl (sind ja alles chars) steht. Ein String ist ja bekanntlich eigentlich nur ein array der aus chars besteht. ich möchte nun wissen (ohne try strtoint) ob das zeichen
Delphi-Quellcode:
eine Zahl ist.
string[x]
gibt es da eine möglichkeit mit z.B. if? (an dieser Stelle weiss ich, dass man dies mit try strtoint lösen könnte) aber ich suche eine andere möglichkeit. Hoffe ihr könnt mir helfen :) MFG Jonsen |
Re: Suchen, vergleichen
Schau mal hier...
Delphi-Quellcode:
auf die Frage mit dem Integer. Du musst mit Pos prüfen, aber...
if Pos('Ich Suche', 'Suchstring') > 0 then
... //Pos(Suchstring, Stringvar.)
Delphi-Quellcode:
wäre da schon ratsam...
tryStrToInt
Gruß Jens |
Re: Suchen, vergleichen
Überprüfen, ob ein Char eine Zahl darstellt, würde ich so:
Delphi-Quellcode:
if MyString[I] in ['0'..'9'] then
showmessage(Format('Das Zeichen "%s" ist eine Zahl!', [MyString[I]])); |
Re: Suchen, vergleichen
vielen dank :)
aber wie finde ich heraus an welcher position (was x ist) der anfangsbuchstabe oder der endbuchstabe von dem gesuchten ist? und was ist wenn es das was ich suche mehr als einmal gibt? MFG Jonsen |
Re: Suchen, vergleichen
Wie wäre es z.B. mit einer Schleife. Aber vieleicht solltest Du mal deinen Code zeigen, damit man das eventuell besser beurteilen kann. Mit einer Schleife könntest Du das z.B. in etwa so gestalten...
Delphi-Quellcode:
Gruß Jens
var
iPos : integer; begin ... while Pos('Suchetext', Text) > 0 do begin iPos := Pos('Suchtext', Text); ShowMessage(IntToStr(iPos)); end; |
Re: Suchen, vergleichen
Zitat:
Zitat:
Zitat:
|
Re: Suchen, vergleichen
Sorry, ja da hast Du recht, da fehlte ja auch was...
Delphi-Quellcode:
Gruß Jens
var
iPos : integer; Text : String; begin ... Text := MyString; while Pos('Suchetext', Text) > 0 do begin iPos := Pos('Suchtext', Text); ShowMessage(IntToStr(iPos)); Delete(Text,1,iPos+1); end; |
Re: Suchen, vergleichen
bisher sieht das so aus :
(is erstmal für die-staemme.de)
Delphi-Quellcode:
gibt mir aber was falsches zurück...
procedure TForm1.Button1Click(Sender: TObject);
Var ipos:integer; form:string; temp:string; begin temp:=''; form:=''; ipos:=pos('Hauptgebäude (Stufe',memo1.Text); ipos:=ipos+21; if memo1.Text[ipos+1] in ['0'..'9'] then temp:=memo1.Text[ipos+1]; memo2.Text:=memo1.Text[ipos]+temp; end; und immer etwas anderes -.- MFG Jonsen |
Re: Suchen, vergleichen
Wenn Du noch nicht viel hast, dann häng doch mal kurz dein Projekt an. Dann kann man eventuelle sehen wo das Problem liegt. Was steh den z.B. im Memo etc.
Gruß Jens |
Re: Suchen, vergleichen
Liste der Anhänge anzeigen (Anzahl: 1)
im grunde ist das was ich oben gepostet hab alles, da es ja noch nicht so funktioniert :(
sobald dieses stück geht, ist der rest einfach... so im memo1 steht: Hauptgebäude (Stufe 15) 2883 3060 2242 8 1:51:10 Rohstoffe verfügbar heute um 14:28 Uhr Kaserne (Stufe 5) 635 584 286 2 0:35:54 Rohstoffe verfügbar heute um 07:48 Uhr Stall (Stufe 3) 540 503 520 2 1:23:07 Rohstoffe verfügbar heute um 07:31 Uhr Werkstatt (Stufe 1) 378 307 328 1 0:57:43 Rohstoffe verfügbar heute um 07:02 Uhr Erste Kirche (Stufe 1) Gebäude vollständig ausgebaut Schmiede (Stufe 11) 2796 2605 3050 16 5:57:24 Rohstoffe verfügbar heute um 14:27 Uhr Versammlungsplatz (Stufe 1) Gebäude vollständig ausgebaut Statue (Stufe 1) Gebäude vollständig ausgebaut Marktplatz (Stufe 10) 1009 1135 1009 14 2:14:01 Rohstoffe verfügbar heute um 08:54 Uhr Holzfäller (Stufe 17) 2220 3731 1659 8 2:40:05 Rohstoffe verfügbar heute um 16:07 Uhr Lehmgrube (Stufe 16) 2977 2150 1250 10 2:13:24 Rohstoffe verfügbar heute um 14:45 Uhr Eisenmine (Stufe 16) 2734 3170 2187 18 2:40:05 Rohstoffe verfügbar heute um 14:10 Uhr Bauernhof (Stufe 10) 620 642 383 0:59:34 Rohstoffe verfügbar heute um 07:45 Uhr Speicher (Stufe 10) 1007 880 555 1:12:55 Rohstoffe verfügbar heute um 08:54 Uhr Versteck (Stufe 3) 98 117 98 0:24:56 Rohstoffe verfügbar heute um 06:12 Uhr Wall (Stufe 7) 252 548 101 2 1:43:25 Rohstoffe verfügbar heute um 06:39 Uhr eine liste der gebäude und deren stufe...dies möchte ich formatieren :) erst suche ich das gebäude dann kommme ich durch die position auf die Stufe und trage dies dann in memo2 mit einem Link zu dem entsprechenden bild ein... :) wenn ich aber nach Hauptgebäude suche und dann immer die gleichen stellen auslese...steht bei mir immer etwas anders :( |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz