![]() |
Re: String mit Hilfe einer Schleife zerteilen und auslesen
der Quelltext ist noch immer der selbe wie
![]() ich habe das mit dem pos rückgängig gemacht, weil es mir im mom zu aufwändig ist, exakt jeden buchstaben in der richtigen reihenfolge in einen string zu schreiben, weil vorher buchstaben vertauscht wurden etc. aber diese lange if then else-tabelle kann der Fehler ja nicht sein.. mfg cRayZo |
Re: String mit Hilfe einer Schleife zerteilen und auslesen
Zitat:
Delphi-Quellcode:
Bis Du dir sicher, dass buffer immer eine eindeutige Zahl zugewiesen bekommt.
buffer:=trunc((Zahl2 - Zahl1)/ Zahl3);
Denn es ist nicht sichergestellt, das (Zahl2 - Zah11)/Zahl3 immer ein eindeutiges Ergebnis liefert. z.B. 105 - 93 = 12 / 4 = 3 -> trunc -> 3 und auch 417 - 365 = 52 / 15 = 3,... -> trunc -> 3 Grüße Klaus |
Re: String mit Hilfe einer Schleife zerteilen und auslesen
Hallo cRayZo,
Zitat:
Delphi-Quellcode:
Beim zweiten Durchlauf wird auf eine Stringliste zugegriffen, die im vorangegangenen Durchlauf freigegeben wurde.
for i := Low(numbers) to High(numbers) do
try s.Add(IntToStr(numbers[i])); // Zugriff auf StringListe showmessage(s.Text); s.Free; // Freigabe der Stringliste Zahl1count:=0; Zahl2count:=1; Zahl3count:=2; except begin showmessage('Fehler im ersten Bereich'); break; end; end; Zitat:
Zitat:
Gruß Hawkeye |
Re: String mit Hilfe einer Schleife zerteilen und auslesen
Hallo cRayZo,
immer wenn ich in diesem Thread das Wort Gleitkommafehler lese, dann frage ich mich, warum du überhaupt mit der Gleitkomma-Division arbeitest, schließlich ist deine ganze Ver- und Entschlüsselung doch ein reiner Ganzzahl-Algorithmus. Hier bekommst du noch eine Funktion Decode(), die den Ansatz von Hawkeye demonstriert. An der Funktion Encode() kannst du dich mal versuchen.
Delphi-Quellcode:
Freundliche Grüße
uses
Types; // TIntegerDynArray const Alphabet = 'abcdefghijklmnopq<rstuvwxyz!"§$%&/()=?*+#-' + '_:.,; ABCDEFGHIJKLMNOPQ>RSTUVWXYZ' ; Chiffre = '0;207:3|8;108:20|2;1342:67|3;339:16|3;2019:42|0;2397:47|' + '0;1260:84|0;116:29|9;189:36|7;1543:32|6;5802:84|7;1597:3' + '0|1;2177:32|4;1660:24|8;1304:27|4;718:14|8;1772:28|7;505' + '1:97|4;4668:88|' ; {$I Proc.ExtractNumbers.pas} function Decode(ida: TIntegerDynArray): string; var i, n: Integer; begin SetLength(Result, Length(ida) div 3); for i := 1 to Length(Result) do begin n := Pred(i) * 3; Result[i] := Alphabet[(ida[n + 1] - ida[n]) div ida[n + 2]]; end; end; procedure TDemoForm.ButtonClick(Sender: TObject); var ida: TIntegerDynArray; begin ExtractNumbers(Chiffre, ida); ShowMessage(Decode(ida)); end; |
Re: String mit Hilfe einer Schleife zerteilen und auslesen
hm also ich hab das Problem gefunden.
danke an Klaus01. Ja ICH war mir sicher dass immer ein exakter wert heraus kommt, aber mein pc scheinbar nicht. Ich habe den code buffer:=trunc((Zahl2 - Zahl1)/ Zahl3); einfach vereinfacht, sodass keine division angewand werden muss. läuft einwandfrei thx :) (edit: endlich :lol: ) |
Re: String mit Hilfe einer Schleife zerteilen und auslesen
Zitat:
Delphi-Quellcode:
<-- was fehlt da?
buffer2:=Pos(buffer; konvert);
buffer{buchstabe}, konvert{Text in dem gesucht werden soll}: string; buffer 2: integer; mfg cRayZo |
Re: String mit Hilfe einer Schleife zerteilen und auslesen
Delphi-Quellcode:
da sollte ein Komma und nicht ein Semikolon stehen.
buffer2:=Pos(buffer; konvert);
In etwa so:
Delphi-Quellcode:
Grüße
buffer2:=Pos(buffer,konvert);
Klaus |
Re: String mit Hilfe einer Schleife zerteilen und auslesen
:oops:
:P okay danke, *peinlichguck* |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:11 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