![]() |
Re: Suchen, vergleichen
Ja, is doch klar. Die Gebäudenamen sind auch unterschiedlich lang. Wenn du jetzt immer, sagen wir mal, die 30igste Stelle ausliest bekommst du immer, je nach Gebaudenamenlänge, einen anderen Char zurück.
Am besten suchst du nach dem ersten Leerzeichen im String. Das ist nämlich immer hinter dem Gebäudenamen. Nun kannst die Xte Stelle (deine Stufe) raus suchen. Nimm dazu den String nach dem ersten Leerzeichen. Der String ist ja nach dem Gebäudenamen überall gleich (bis zur Stufe zumindest, und die willst du ja heben). |
Re: Suchen, vergleichen
Mit einer ListView (vsReport mit 2 Spalten) könnte man das z.B. so darstellen:
Delphi-Quellcode:
var sl: TStringlist;
i, StufePos, BracketPos: integer; Item: TListItem; begin sl := TStringlist.Create; try sl.LoadFromFile(<Dateiname>); for i := 0 to sl.Count - 1 do begin Item := ListView.Items.Add; //Alles bis zum ersten Leerzeichen kopieren Item.Caption := Copy(sl[i],1,Pos(' ',sl[i]) - 1); //Position des Wortes "Stufe" StufePos := Pos('Stufe',sl[i]); //Position der ersten schließenden Klammer BracketPos := Pos(')',sl[i]); //alles zwischen den ermittelten Positionen kopieren Item.SubItems.Add(Copy(sl[i],StufePos + 6, BracketPos - StufePos - 6)); end; finally sl.Free; end; end; |
Re: Suchen, vergleichen
Ich würde den Gebäudenamen aber suchen lassen bis zum ersten Erscheinen von " ("
Das erscheint mir eindeutiger |
Re: Suchen, vergleichen
Klar, kann man auch machen, falls ein Gebäudename ein Leerzeichen enthalten darf. Aber darum ging es mir auch nicht, ein bisschen soll der TE ja selbst erledigen ;)
|
Re: Suchen, vergleichen
Lägen die Daten in dieser Form vor:
Code:
Dann wär das alles kein Problem.
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 Gruß K-H |
Re: Suchen, vergleichen
Zitat:
Delphi-Quellcode:
Gruß Jens
procedure TForm1.Button1Click(Sender: TObject);
var ipos:integer; form:string; temp:string; begin temp:=''; form:=''; ipos:=pos('(',Memo1.Text); if Memo1.Text[ipos+1] in ['0'..'9'] then begin temp:=Memo1.Text[ipos+1]; Memo2.Text:=Memo1.Text[ipos]+temp;//Obwohl ich diesen Sinn noch nicht ganz versteh. end; end; |
Re: Suchen, vergleichen
er meint bei mir immer :
[Fehler] Unit1.pas(30): Undefinierter Bezeichner: 'TListItem' kann mir wer da helfen ? DANKE übringens für die Lösungsvorschläge :) |
Re: Suchen, vergleichen
Dann fehlt die Unit, hast Du den wie Deddy geschrieben hat überhaupt eine TListView in dein Projekt eingefügt. Das ist eine Komponenten, die DeddyH als anzeige vorgeschlagen hat.
Gruß Jens |
Re: Suchen, vergleichen
@ jens...das
Delphi-Quellcode:
gehört wenn dann außerhalb der if bedingung also nach das end...dies soll immer! ausgefürht werden :)
Memo2.Text:=Memo1.Text[ipos]+temp;
die andere lösung find ich auch richtig gut danke |
Re: Suchen, vergleichen
Liste der Anhänge anzeigen (Anzahl: 1)
so leute...hab ma das programm für meine zwecke ein bischen umgeschrieben...jetzt geht das aber nicht mehr richtig -.-
das problem: wenn ich auf wandeln drücke...wird hinter dem namen nicht nur die stufe, sondern auch noch eine klammer und ein paar zahlen (welche rohstoffe man für das ausbauen braucht) angezeigt....dies soll nicht so sein...hoffe ihr findet den fehler den ich übersehe :) MFG Jonsen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:27 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