Autor Beitrag
joker0000
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 70

Win XP
Delphi 2006
BeitragVerfasst: So 13.01.08 13:34 
...


Zuletzt bearbeitet von joker0000 am Mo 31.03.08 18:18, insgesamt 2-mal bearbeitet
nagel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 708

Win7, Ubuntu 10.10

BeitragVerfasst: So 13.01.08 14:04 
Du musst dir halt erst mal überlegen, was dein Interpreter für Befehle interpretieren soll, und deren Syntax, und die Benutzereingaben dann danach parsen. Ich denk mal, dass die meisten Kommandos, wenn nicht alle, maximal einen Parameter brauchen, deshalb dürfte der "Parser" nicht allzu kompliziert werden (Leerzeichen suchen :wink: ).

Du könntest beispielsweise für den Anfang mal definieren
gehe x (geht x Pixel nach vorne)
drehe x (dreht um den Winkel x nach rechts)
stift x (x=0 -> stift oben, x=1 stift unten)

Dann eben immer den Teil des Strings vor dem Leerzeichen rausnehmen und in 'ner case-Abfrage die Turtlefunktionen aufrufen.
joker0000 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 70

Win XP
Delphi 2006
BeitragVerfasst: So 13.01.08 14:06 
...


Zuletzt bearbeitet von joker0000 am So 30.03.08 19:38, insgesamt 1-mal bearbeitet
nagel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 708

Win7, Ubuntu 10.10

BeitragVerfasst: So 13.01.08 14:34 
Was soll den abgefragt werden? Geht's darum, ob der Rand der Zeichenfläche erreicht worden ist, oder was?

Und Schleifen sind glaub ich auch nicht zu kompliziert, zumindest eine For-Schleife sollte ohne größere Probleme machbar sein.
joker0000 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 70

Win XP
Delphi 2006
BeitragVerfasst: Mo 14.01.08 16:16 
...


Zuletzt bearbeitet von joker0000 am So 30.03.08 19:49, insgesamt 1-mal bearbeitet
nagel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 708

Win7, Ubuntu 10.10

BeitragVerfasst: Mo 14.01.08 16:29 
Klingt prinzipiell vernünftig, ja.

Die Funktion, die du suchst, heißt copy.
joker0000 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 70

Win XP
Delphi 2006
BeitragVerfasst: Mo 14.01.08 18:05 
...


Zuletzt bearbeitet von joker0000 am So 30.03.08 19:48, insgesamt 1-mal bearbeitet
DrRzf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260

Win XP Prof
D7 Enterprise
BeitragVerfasst: Di 15.01.08 00:40 
Wenn sicher ist dass es nur eine zusammenhängende zahl in dem string gibt, gibts ne recht unelegante aber einfache lösung.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
function GetIntegerFromStr(str:string):integer;
var
  i : integer;
  tmpstr : string;
begin
  tmpstr := '';
  for i := 0 to length(str) do
    if StrToIntDef(str[i],-1) <> -1 then tmpstr := tmpstr + str[i];
  result := StrToInt(tmpstr);
end;

_________________
rein statistisch gesehen darf man keiner statistik trauen die man nicht selbst gefälscht hat.
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Di 15.01.08 09:27 
Die unelegante Verssion von DrRzf dürfte klappen, wenn du es lieber elegant hast, suche mit Suche in: Delphi-Forum, Delphi-Library POS nach der öffnenden Klammer und kopiere dann mit copy bis zur schließenden Klammer. Sollte etwa so gehen:
ausblenden Delphi-Quelltext
1:
number := copy (MyString, pos('(', MyString), pos(')', MyString) - pos('(', MyString));					

Ungetestet, da grad kein Delphi da. Schau dir die Funktionen mal an, dann kriegst du das selber raus ;)
ausblenden Quelltext
1:
2:
3:
Links (50)
Rechts(10)
Gehe(20)

Wenn es so einfach ist, dann schreib dir einen Rekord
ausblenden Delphi-Quelltext
1:
2:
3:
4:
 type TTurtlecommand is record
   command : String;
   amount : Integer;
end;

und einen dynamischen Array dieses Rekords.
Nun geh deinen Text zeile für zeile durch und schreibe die Zahl in amount und den Text bis zur ersten ( in command, wobei du auch gleich leertasten entfernen und auf gültigkeit prüfen kannst (ist mein command-String ein gültiger Befehl oder hat ein Scherzkeks Spiele_YoYo (500) geschrieben? ist überhaupt eine ( da? ist eine zahl da? ...). Dann kannst du in einer zweiten Schleife dieses array durchgehen und die Befehle ausführen.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
DrRzf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260

Win XP Prof
D7 Enterprise
BeitragVerfasst: Di 15.01.08 15:55 
user profile iconJayEff hat folgendes geschrieben:
Die unelegante Verssion von DrRzf dürfte klappen, wenn du es lieber elegant hast...


Ich benutze diese art dazu um in einem rtf zeilenweise nach zahlen zu suchen.
das problem dabei ist, dass diese daten dort per drag&drop von einem browser kommen, und dabei je nach browser andere formatierungen drinn sind. (beim IE sind leerzeichen, bei FF kommen Tabs...)
Was aber sicher ist, ich hab anfangs nen string und nachher ne zahl, die aber auch noch tausendertrennzeichen enthält.
auf diese art sind die dann auch gleich verschwunden.

Edit:
hab mich oben etwas mit dem index vertan, der muss bei 1 beginnen.
aber hier die function die ich benutze, orischinal aus dem source kopiert.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
function GetIntFromStr(source : string): integer;
var
  i : integer;
  s : string;
begin
  s := '';
  for i := 1 to length(source) do
    if StrToIntDef(source[i],-1) <> -1 then
      s := s + source[i];
  result := StrToInt(s);
end;

_________________
rein statistisch gesehen darf man keiner statistik trauen die man nicht selbst gefälscht hat.
joker0000 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 70

Win XP
Delphi 2006
BeitragVerfasst: So 20.01.08 12:58 
...


Zuletzt bearbeitet von joker0000 am So 30.03.08 19:51, insgesamt 1-mal bearbeitet
DrRzf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260

Win XP Prof
D7 Enterprise
BeitragVerfasst: So 20.01.08 20:14 
user profile iconjoker0000 hat folgendes geschrieben:
aber vorsicht bei der google suche xD


Iss ja gut dass der Delphi Compiler nicht im Internet danach suchen muss um es in Code umzusetzen :nut:

_________________
rein statistisch gesehen darf man keiner statistik trauen die man nicht selbst gefälscht hat.
joker0000 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 70

Win XP
Delphi 2006
BeitragVerfasst: So 20.01.08 20:37 
...


Zuletzt bearbeitet von joker0000 am So 30.03.08 19:55, insgesamt 1-mal bearbeitet
joker0000 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 70

Win XP
Delphi 2006
BeitragVerfasst: Mo 21.01.08 16:43 
...


Zuletzt bearbeitet von joker0000 am So 30.03.08 20:20, insgesamt 1-mal bearbeitet
Mitmischer 1703
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: Mo 21.01.08 18:35 
:mahn: "Schieb, Schieb!!!" :evil: :evil: :evil:

8)

_________________
Die Lösung ist nicht siebzehn.
joker0000 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 70

Win XP
Delphi 2006
BeitragVerfasst: Di 22.01.08 06:34 
...


Zuletzt bearbeitet von joker0000 am So 30.03.08 20:20, insgesamt 1-mal bearbeitet
joker0000 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 70

Win XP
Delphi 2006
BeitragVerfasst: So 02.03.08 17:30 
...


Zuletzt bearbeitet von joker0000 am So 30.03.08 19:41, insgesamt 1-mal bearbeitet
joker0000 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 70

Win XP
Delphi 2006
BeitragVerfasst: Mo 03.03.08 17:28 
...


Zuletzt bearbeitet von joker0000 am So 30.03.08 19:41, insgesamt 1-mal bearbeitet
joker0000 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 70

Win XP
Delphi 2006
BeitragVerfasst: Sa 08.03.08 17:32 
...