Einzelnen Beitrag anzeigen

Prym

Registriert seit: 20. Feb 2005
108 Beiträge
 
#5

Re: mehrere zahlen aus einen string filtern?

  Alt 22. Jul 2005, 18:13
guten tag ich habe das jetzt anders gelöst aber damit habe ich ein problen was eigentlich nicht sein dürfte

Delphi-Quellcode:
procedure TForm1.Button68Click(Sender: TObject);
var Pla : integer;
geb,fleet,def,StrZahl : string;

i,posWort,posklam : integer;
begin

Pla := Strtointdef(CBPL.Text,0);
if (pla <1) and (pla>9) then
begin
showmessage('Ungültiger Planet');
exit;
end;

 if CBMond.Checked = true then
 begin
  geb:=memogeb.text;
  //fleet:=memofleet.text;
  //def:=memodef.text;
  {----A--------------------Gebäude-----------------------------}
   if geb <>'then
   begin
    ///////////////////////////////////////////////////////
    PosWort:=pos('Roboterfabrik',geb);
    PosKlam:=pos(')',geb);
    if (PosWort<>0) and ((PosKlam-PosWort)<50) then
    begin
      for i := PosWort to PosKlam do
      begin
       If geb[i] in ['0','1','2','3','4','5','6','7','8','9'] Then
       Strzahl:= StrZahl+geb[i];
      end;
      (findcomponent('edtpl'+inttostr(pla)+'mrobf') as TEdit).text :=Strzahl ;
      delete(geb,(pos(')',geb)),(pos(')',geb))+1);
      Strzahl:='';
    end;
   ///////////////////////////////////////////
    PosWort:=pos('Raumschiffwerft',geb);
    PosKlam:=pos(')',geb);
    if (PosWort<>0) and ((PosKlam-PosWort)<50) then
    begin
      for i := PosWort to PosKlam do
      begin
       If geb[i] in ['0','1','2','3','4','5','6','7','8','9'] Then
       Strzahl:= StrZahl+geb[i];
      end;
      (findcomponent('edtpl'+inttostr(pla)+'mraumw') as TEdit).text :=Strzahl ;
      delete(geb,(pos(')',geb)),(pos(')',geb))+1);
      Strzahl:='';
    end;
    ///////////////////////////////////////////////////////
    PosWort:=pos('Metallspeicher',geb);
    PosKlam:=pos(')',geb);
    if (PosWort<>0) and ((PosKlam-PosWort)<50) then
    begin
      for i := PosWort to PosKlam do
      begin
       If geb[i] in ['0','1','2','3','4','5','6','7','8','9'] Then
       Strzahl:= StrZahl+geb[i];
      end;
      (findcomponent('edtpl'+inttostr(pla)+'mmets') as TEdit).text :=Strzahl;
      delete(geb,(pos(')',geb)),(pos(')',geb))+1);
      Strzahl:='';
    end;
    ///////////////////////////////////////////////////////
    PosWort:=pos('Kristallspeicher',geb);
    PosKlam:=pos(')',geb);
    if (PosWort<>0) and ((PosKlam-PosWort)<50) then
    begin
      for i := PosWort to PosKlam do
      begin
       If geb[i] in ['0','1','2','3','4','5','6','7','8','9'] Then
       Strzahl:= StrZahl+geb[i];
      end;
      (findcomponent('edtpl'+inttostr(pla)+'mkriss') as TEdit).text :=Strzahl;
      delete(geb,(pos(')',geb)),(pos(')',geb))+1);
      Strzahl:='';
    end;
    ///////////////////////////////////////////////////////
    PosWort:=pos('Deuteriumtank',geb);
    PosKlam:=pos(')',geb);
    if (PosWort<>0) and ((PosKlam-PosWort)<50) then
    begin
      for i := PosWort to PosKlam do
      begin
       If geb[i] in ['0','1','2','3','4','5','6','7','8','9'] Then
       Strzahl:= StrZahl+geb[i];
      end;
      (findcomponent('edtpl'+inttostr(pla)+'mdeuts') as TEdit).text :=Strzahl;
      delete(geb,(pos(')',geb)),(pos(')',geb))+1);
      Strzahl:='';
    end;
    ///////////////////////////////////////////////////////
    PosWort:=pos('Mondbasis',geb);
    PosKlam:=pos(')',geb);
    if (PosWort<>0) and ((PosKlam-PosWort)<50) then
    begin
      for i := PosWort to PosKlam do
      begin
       If geb[i] in ['0','1','2','3','4','5','6','7','8','9'] Then
       Strzahl:= StrZahl+geb[i];
      end;
      (findcomponent('edtpl'+inttostr(pla)+'mmon') as TEdit).text :=Strzahl;
      delete(geb,(pos(')',geb)),(pos(')',geb))+1);
      Strzahl:='';
    end;
    ///////////////////////////////////////////////////////
    PosWort:=pos('Sensorphalanx',geb);
    PosKlam:=pos(')',geb);
    if (PosWort<>0) and ((PosKlam-PosWort)<100) then
    begin
      for i := PosWort to PosKlam do
      begin
       If geb[i] in ['0','1','2','3','4','5','6','7','8','9'] Then
       Strzahl:= StrZahl+geb[i];
      end;
      (findcomponent('edtpl'+inttostr(pla)+'mSen') as TEdit).text :=Strzahl;
      delete(geb,(pos(')',geb)),(pos(')',geb))+1);
      Strzahl:='';
    end;
    ///////////////////////////////////////////////////////
    PosWort:=pos('Sprungtor',geb);
    PosKlam:=pos(')',geb);
    if (PosWort<>0) and ((PosKlam-PosWort)<50) then
    begin
      for i := PosWort to PosKlam do
      begin
       If geb[i] in ['0','1','2','3','4','5','6','7','8','9'] Then
       Strzahl:= StrZahl+geb[i];
      end;
      (findcomponent('edtpl'+inttostr(pla)+'mst') as TEdit).text :=Strzahl;
      delete(geb,(pos(')',geb)),(pos(')',geb))+1);
      Strzahl:='';
    end;
    ///////////////////////////////////////////////////////
   end;
   {----A--------------------Gebäude-----------------------------}
 end;
end;
mein problem es wird alles sehr schön eingelesen bis Sensorphalanx

hir ist der string dazu:
--------------------------------------------------------------------------------------------------
Roboterfabrik (Stufe 2)
Roboterfabriken stellen einfache Arbeitskräfte zur Verfügung, die beim Bau der planetaren Infrastruktur eingesetzt werden können. Jede Stufe erhöht damit die Geschwindigkeit des Ausbaus von Gebäuden.
Benötigt: Metall:1.600 Kristall:480 Deuterium:800
Produktionsdauer: 16m 38s
Ausbau
auf Stufe 3
Raumschiffwerft (Stufe 5)
In der planetaren Werft werden alle Arten von Schiffen und Verteidigungsanlagen gebaut.
Benötigt: Metall:12.800 Kristall:6.400 Deuterium:3.200
Produktionsdauer: 2h 33m 36s
Ausbau
auf Stufe 6
Metallspeicher
Lagerstätte für unbearbeitete Metallerze bevor sie weiter verarbeitet werden.
Benötigt: Metall:2.000 Kristall:0
Produktionsdauer: 16m 00s
bauen
Kristallspeicher
Lagerstätte für unbearbeitetes Kristall bevor es weiter verarbeitet wird.
Benötigt: Metall:2.000 Kristall:1.000
Produktionsdauer: 24m 00s
bauen
Deuteriumtank
Riesige Tanks zur Lagerung des neu gewonnenen Deuteriums.
Benötigt: Metall:2.000 Kristall:2.000
Produktionsdauer: 32m 00s
bauen
Mondbasis (Stufe 4)
Ein Mond verfügt über keinerlei Atmosphäre, deshalb muss vor der Besiedlung eine Mondbasis errichtet werden.
Benötigt: Metall:320.000 Kristall:640.000 Deuterium:320.000
Produktionsdauer: 5 Tage 8h 00m 00s
Ausbau
auf Stufe 5
Sensorphalanx (Stufe 1)
Die Sensorphalanx erlaubt es Flottenbewegungen zu beobachten. Je höher die Ausbaustufe, desto größer die Reichweite der Phalanx.
Benötigt: Metall:40.000 Kristall:80.000 Deuterium:40.000
Produktionsdauer: 16h 00m 00s
----------------------------------------------------------------------------------------------------

könnte einer wissen warum?
Kodex & FAQ :: Index:
2.3.3.1 - Bitte nicht vom Thema abschweifen
  Mit Zitat antworten Zitat