Autor |
Beitrag |
Basti1207
Hält's aus hier
Beiträge: 5
|
Verfasst: So 05.10.08 12:01
Guten Tag,
Ich wollte mal wissen ob es möglich ist, aus einem String wie diesen hier:
Zitat: | Random(466, 496), Random(176, 206) |
466 als x1, 496 als x2, 176 als y1 und 206 als y2 automatisch auslesbar ist.
mfg Basti
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 05.10.08 12:37
Erstmal
Zur Frage: Ja
Wolltest du auch wissen wie?
1. Kopiere ggf. den String in einen temporären String
2. Suche mit Pos nach dem ersten '(', kopiere mit Copy alles bis zum ersten ',' und wandele es mit StrToInt in einen Integerwert um
3. Lösche mit Delete alles bis zum ',', inklusive des Kommas und ggf. des Leerzeichens
4. Kopiere alles bis zum ')' und wandele es in einen Integerwert um
5. Lösche alles bis zum '(' inklusive
6. Copy bis zum ','
...
|
|
Basti1207 
Hält's aus hier
Beiträge: 5
|
Verfasst: So 05.10.08 13:02
Hmm ja also erstmal schonmal danke
Ich muss aber leider sagen das ich erst seit ca 5 Wochen in der Schule Programmiern habe und wir uns bisher eher andere sachen behandelt haben..
Naja, jedenfalls hab ich mal versucht deine Anleitung mit hilfe von Google durchzugehen, doch schon bei der ersten Anweisung scheiterts.. :/
function Pos(Substr: string; S: string): Integer;
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.Button2Click(Sender: TObject); var tempstring : string; stelle : integer; begin tempstring := Edit14.Text; stelle := Pos((''(''); tempstring); end; |
Soll laut Delphi ein Operator oder Semikolon fehlen..
Da es beim ersten schon scheitert wäre es furchbar nett wenn du mir den rest vielleicht als Quellcode schreiben könntest wenn du mal ne ruhige Minute hast. Oder eben einfach wie man "copy", "delete" und "pos" anwendet
mfg
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 05.10.08 13:08
Ich empfehle dir dringend
www.christian-stelzm...=tutorials_crashkurs
bzw.
www.christian-stelzm...shkurs_reloaded.html
Dann zum Fehler: Basti1207 hat folgendes geschrieben : | function Pos(Substr: string; S: string): Integer;
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.Button2Click(Sender: TObject); var tempstring : string; stelle : integer; begin tempstring := Edit14.Text; stelle := Pos((''(''); tempstring); end; |
Soll laut Delphi ein Operator oder Semikolon fehlen.. |
Also: In der Deklaration steht zwischen den Parametern ein Semikolon, wenn du die Funktion aber aufrufst, dann trennst du die mit Kommata. Dann gehört um einen String nur jeweils ein einfaches Hochkomma vorne und eins hinten. Also: Delphi-Quelltext 1:
| stelle := Pos('(', tempstring); | Und mit dem Wissen bekommst du den Rest vermutlich auch hin  . Du hast ja schon an den richtigen Stellen geschaut  .
|
|
Die Muhkuh
      
Beiträge: 33
|
Verfasst: So 05.10.08 13:46
Hi,
anbei ein kleines Projekt, wie man es auch machen kann.
Aber Achtung: War in 10 Min getippt, da ist noch ordentlich Optimierungspotential vorhanden.
Einloggen, um Attachments anzusehen!
|
|
Jerk
      
Beiträge: 251
Vista Ultimate, Ubuntu
Turbo Delphi 2006
|
Verfasst: So 05.10.08 13:49
Mach es lieber mit einer Zählerschleife. Der startwert ist 1 und der Entwert ist die Länge vom String.
Dann vergleichst du das Zeichen des String an der Stelle der Zählervariable ob es eine Zahl ist.
Wenn es eine Zahl ist mekrst du dir die Position.
Sobald dann die Schleife nichtZahl stößt Kopierst du von der Gemerkten Poisition bis zur Zähjlervariable - 1 den String und hast somit deine Zahl.
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 05.10.08 13:50
@ Die Muhkuh: Und du meinst das ist verständlich, wenn es schon bei einfacheren Versionen nicht so einfach für ihn ist?
Abgesehen davon, dass es so noch schwieriger werden dürfte, das ursprüngliche Problem zu lösen, nämlich die Zahlen in Variablen zu bekommen  .
|
|
Die Muhkuh
      
Beiträge: 33
|
Verfasst: So 05.10.08 13:55
Hi,
stimmt ja. Da war ja noch was
Es geht ja nicht drum, dass ich gleich seine Aufgabe löse, sondern wie man es mit Schleifen noch lösen kann.
Das Gefummel mit Pos ist schließlich nicht auch viel einfacher / besser zu lesen.
Bei Interesse könnte ich es noch etwas umschreiben, um es direkt in die Variablen speichern zu können.
|
|
Jerk
      
Beiträge: 251
Vista Ultimate, Ubuntu
Turbo Delphi 2006
|
Verfasst: So 05.10.08 14:07
Ich denke das Interesse ist bei ihm vorhanden, eine fertige LKösung zu bekommen, aber wo ist dann der Lerneffekt :p
|
|
Basti1207 
Hält's aus hier
Beiträge: 5
|
Verfasst: So 05.10.08 14:14
soderle.. habs jetzt mit ein bisschen probieren hinbekommen..:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38:
| procedure TForm1.Button2Click(Sender: TObject); var tempstring : string; stelle : integer; x1 : string; x2 : string; y1 : string; y2 : string; begin tempstring := Edit14.Text; stelle := Pos('(', tempstring); Delete(tempstring, 1, stelle); stelle := Pos(',', tempstring); x1 := Copy(tempstring, 1, stelle-1);
stelle := Pos(',', tempstring); Delete(tempstring, 1, stelle+1); x2 := Copy(tempstring, 1, stelle-1);
stelle := Pos('(', tempstring); Delete(tempstring, 1, stelle); stelle := Pos(',', tempstring); y1 := Copy(tempstring, 1, stelle-1);
stelle := Pos(',', tempstring); Delete(tempstring, 1, stelle+1); y2 := Copy(tempstring, 1, stelle-1);
Edit5.Text := x1; Edit6.Text := y1; Edit10.Text := x2; Edit11.Text := y2;
end; |
Is zwar wahrscheinlich ein bisschen umständlich gemacht, aber hauptsache es funktioniert
Danke nochmal
Wer sich für den Rest des Programmes interessiert (Damit kann man Koordinaten einer Auflösung in die Koordinaten einer anderen Auflösung umwandeln. Dazu eben eine Einlese/Ausgabe funktion für das Programm "Auto It".), der kann mal in den Anhang schauen!
mfg Basti
Einloggen, um Attachments anzusehen!
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 05.10.08 14:23
Nach ein paar Wochen Delphi ist es auch egal, ob es umständlich ist. Das Entscheidende ist, dass du es mit den Hilfen selbst hinbekommen und einfach etwas ausprobiert hast, und das ist schon einiges wert für das weitere Lernen von Delphi. 
|
|
|