![]() |
RightStr, LeftStr nicht gefunden???
In folgendem Source benötige ich den Befehl RightStr und leftStr leider kennt die mein D3 so nicht muss ich noch irgentwas in die Uses einbinden oder kann man diese function irgentwie nachmachen?
Delphi-Quellcode:
Mfg
function potenziren(FWert: integer): integer;
var i: integer; begin if FWert = 0 then result := 1 else result := 2; // 2^0 = 1 for i := 1 to FWert - 1 do result := result * 2; // 2^x = 2*2*2*... end; function FBinToDec(FWert: String): String; var i, ZwErg: integer; begin ZwErg := 0; //Hier werden nach und nach die Ziffern Binär eingelesen for i := 1 to Length(FWert) do //Und entsprechend Potenziert ZwErg := ZwErg + strtoint(FWert[i]) * potenziren(Length(FWert)-i); //Also 110 wäre (1* 2^2) + (1* 2^1) + (0* 2^0) Result := inttostr(ZwErg); end; function FBinToHex(FWert: String): String; var ZwErgStr: String; ZwErgInt: Double; arrIndex: Integer; const arrHex: array[0..15] of Char = ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'); begin // Ich erläuter das am besten gleich an nem Beispiel ;) Wir haben die BinZahl 1100111110 while Length(FWert) > 0 do // Zuerst schauen wir ob überhaupt noch was im String steht, da wir abgearbeitete Ziffern 'rausschneiden' if Length(FWert) > 4 then // Wenn über 4 Ziffern vorhanden sind machen wir folgendes: begin ZwErgInt := strtoint(FBinToDec(RightStr(FWert,4))); // Wir Rechnen die hintersten 4 Ziffern (also 1110 im bsp) ab und lassen sie in Dezimal umschreiben ( also 14) FWert := LeftStr(FWert,Length(FWert)-4); // Jetzt schneiden wir die 4 Ziffern von FWert ab, da wir die ja schon verarbeitet haben Result := arrHex[Trunc(ZwErgInt)] + Result; // Nun schauen wir in unserem Array (siehe functions-konstante) nach, was an stelle bsp.: 14 steht: ein E end // Damit haben wir unsere Letzte Ziffer ausgerechnet. Das machen wir nun solange bis wir < 4 Zeichen in FWert haben. else // Wenn wir damit fertig sind steht also im ergebnis schonmal 3E und im string noch '11' begin ZwErgInt := strtoint(FBinToDec(FWert)); // Hier pasiert nun eigentlich das gleiche, nur dass wir FWert := ''; // Nun den String leeren können und Result := arrHex[Trunc(ZwErgInt)] + Result; // Nicht 4 Stellen sondern halt nur den Rest umwanden... end // Wir erhalten im beispiel also die letzte stelle (11bin = 3h) end; Tobi |
Re: RightStr, LeftStr nicht gefunden???
Was machen die Funktionen? Ich kenn die gar nicht, da ich sie auch nie brauchte ...
|
Re: RightStr, LeftStr nicht gefunden???
Diese Funktionen lesen eine bestimmte Anzahl Zeichen von Links resp. Rechts aus einem String.
Binde mal die Unit StrUtils mit ein, weiss nicht ob sie bei Delphi 3 dort sind, aber bei Delphi 7 waren sie in dieser Unit zu finden |
Re: RightStr, LeftStr nicht gefunden???
|
Re: RightStr, LeftStr nicht gefunden???
Mal Copy versucht?
Copy(StringVar, 1, 3): Dies liest vom 1. Zeichen an 3 Zeichen aus. Copy(StringVar, length(StringVar) -3, 3): Liest von hinten 3 Zeichen. Florian |
Re: RightStr, LeftStr nicht gefunden???
Florian, wie lauten somit die letzten 3 Zeichen deines Vornamens?
|
Re: RightStr, LeftStr nicht gefunden???
ian ??
|
Re: RightStr, LeftStr nicht gefunden???
:stupid:
Laut ihm selbst: ria |
Re: RightStr, LeftStr nicht gefunden???
du musst nbatürlich auch als namen "Florian " nehmen :stupid:
|
Re: RightStr, LeftStr nicht gefunden???
es wäre doch theoretisch möglich mit D05 PE eine DLL zu erstellen die die aufgabe übernimmt...oder
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:45 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