AGB  ·  Datenschutz  ·  Impressum  







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

Suchen, vergleichen

Offene Frage von "jonsen2.0.0.9"
Ein Thema von jonsen2.0.0.9 · begonnen am 17. Mär 2010 · letzter Beitrag vom 20. Mär 2010
Antwort Antwort
Seite 2 von 3     12 3      
Butch87

Registriert seit: 3. Mai 2007
70 Beiträge
 
#11

Re: Suchen, vergleichen

  Alt 18. Mär 2010, 08:55
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).
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.544 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: Suchen, vergleichen

  Alt 18. Mär 2010, 09:16
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;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#13

Re: Suchen, vergleichen

  Alt 18. Mär 2010, 09:30
Ich würde den Gebäudenamen aber suchen lassen bis zum ersten Erscheinen von " ("
Das erscheint mir eindeutiger
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.544 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: Suchen, vergleichen

  Alt 18. Mär 2010, 09:43
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
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#15

Re: Suchen, vergleichen

  Alt 18. Mär 2010, 16:23
Lägen die Daten in dieser Form vor:
Code:
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
Dann wär das alles kein Problem.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#16

Re: Suchen, vergleichen

  Alt 18. Mär 2010, 16:59
Zitat von p80286:
Lägen die Daten in dieser Form vor:
Liegen sie aber ja scheinbar nicht. Deshalb denke ich, das Sir Rufo da schon den richtigen Ansatz gegeben hat. Es sieht aufjedenfall so aus, als wär die "(" immer vor der Stufe, also sollte es in etwa so gehen...

Delphi-Quellcode:
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;
Gruß Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
jonsen2.0.0.9

Registriert seit: 5. Dez 2009
67 Beiträge
 
Delphi 7 Personal
 
#17

Re: Suchen, vergleichen

  Alt 19. Mär 2010, 17:52
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
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#18

Re: Suchen, vergleichen

  Alt 19. Mär 2010, 19:11
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
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
jonsen2.0.0.9

Registriert seit: 5. Dez 2009
67 Beiträge
 
Delphi 7 Personal
 
#19

Re: Suchen, vergleichen

  Alt 19. Mär 2010, 19:38
@ jens...das

Memo2.Text:=Memo1.Text[ipos]+temp; gehört wenn dann außerhalb der if bedingung also nach das end...dies soll immer! ausgefürht werden


die andere lösung find ich auch richtig gut danke
  Mit Zitat antworten Zitat
jonsen2.0.0.9

Registriert seit: 5. Dez 2009
67 Beiträge
 
Delphi 7 Personal
 
#20

Re: Suchen, vergleichen

  Alt 19. Mär 2010, 19:55
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
Angehängte Dateien
Dateityp: zip wandel2_145.zip (205,6 KB, 1x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 23: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