![]() |
ReplaceStr Schwierigkeiten
Hallo zusammen,
habe mit der Funktion ReplaceStr() Probleme in einer zweiten Unit. Dort benötige ich diese Funktion und da kommt aber die Meldung "Undefinierter Bezeichner ReplaceStr" Ich habe in der uses ... Windows, Messages, SysUtils, StrUtils ,Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls ... eingebunden. Kann mir bitte jemand sagen, was ich noch einbinden muss, damit ich diese Funktion verwenden kann. Im Google habe ich leider keinen Hinweis gefunden. Danke! Gruss LingNeu |
AW: ReplaceStr Schwierigkeiten
![]() ![]() Es kann aber auch sein, dass es diese Funktion unter Delphi 7 noch nicht gab. Na dann erstellt man sich so eine und sammelt diese und ähnliche in einer
Delphi-Quellcode:
unit StrUtilsEx;
|
AW: ReplaceStr Schwierigkeiten
Sollte eigentlich in System.StrUtils enthalten sein. Zeig mal deinen Code.
|
AW: ReplaceStr Schwierigkeiten
Gibt es ReplaceStr überhaupt?
Normalerweise ist es doch StringReplace oder nicht? Oder sind das 2 verschiedene (gleiche) Funktionen? |
AW: ReplaceStr Schwierigkeiten
@sir rufo,
danke für die seiten, diese hatte ich auch schon im visier, aber da steht auch nur die strutils drin, diese habe ich aber in der uses wenn ich die funktion in meine hauptform (unit1) reinmache nimmt delphi diese an, aber nicht in der FunctionUnit, welche ich als funktionenpool verwende. @luckie diese funktion brauche in in einer Umwandlungsfunktion
Delphi-Quellcode:
danke für jeden Hinweis!
unit functions;
interface uses Windows, Messages, SysUtils, StrUtils ,Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, SUIButton, Mask, SUIEdit, SUIMemo, SUIImagePanel ; function convert(astring: Ansistring): string; var tmp: string; i: integer; begin tmp := UpperCase(astring); tmp := ReplaceStr(tmp,'ä','AE'); tmp := ReplaceStr(tmp,'ö','OE'); tmp := ReplaceStr(tmp,'ü','UE'); tmp := ReplaceStr(tmp,'ß','SS'); //alle nicht Buchastaben löschen for i := length(tmp) downto 1 do begin if (tmp[i]<'A') or (tmp[i]>'Z') then delete(tmp,i,1); end; result := tmp; end; Lingneu |
AW: ReplaceStr Schwierigkeiten
Ich habe bei Google auf die Schnelle hier gefunden:
![]() Aber jetzt, wo du es sagst.... :roll: |
AW: ReplaceStr Schwierigkeiten
Da fehlt so ein schönes Schlüsselwort, nach dem ich benannt bin. Einfach zwischen die uses-Klausel und die Funktion stecken. Und hinterher die Funktion am Besten nochmal im interface-Teil erwähnen (dort nur erwähnen, nicht implementieren!).
Edit: Nur um mich klarer auszudrücken:
Delphi-Quellcode:
uses ...;
function convert(astring: Ansistring): string; // damit du in der ersten Unit drauf zugreifen kannst implementation // <-- der springende Punkt function convert(astring: Ansistring): string; var ... |
AW: ReplaceStr Schwierigkeiten
Hallöle...
Zitat:
Zitat:
|
AW: ReplaceStr Schwierigkeiten
@implementation
danke für den Hinweis, aber das habe ich auch gemacht, nur nicht im vorherigen Beispielcode angegeben
Delphi-Quellcode:
LingNeuunit functions; interface uses Windows, Messages, SysUtils, StrUtils ,Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, SUIButton, Mask, SUIEdit, SUIMemo, SUIImagePanel; function RightStr(Const Str: String; Size: Word): String; function MidStr(Const Str: String; From, Size: Word): String; function LeftStr(Const Str: String; Size: Word): String; function textumbau(text1: string; text2: string; variation: integer): string; function strtonum(wert:string;istfloat:boolean):double; function DigitSum(i : Integer): Integer; function convert(astring: AnsiString): string; implementation function convert(astring: Ansistring): string; var tmp: string; i: integer; begin tmp := UpperCase(astring); tmp := ReplaceStr(tmp,'ä','AE'); tmp := ReplaceStr(tmp,'ö','OE'); tmp := ReplaceStr(tmp,'ü','UE'); tmp := ReplaceStr(tmp,'ß','SS'); //alle nicht Buchastaben löschen for i := length(tmp) downto 1 do begin if (tmp[i]<'A') or (tmp[i]>'Z') then delete(tmp,i,1); end; result := tmp; end; |
AW: ReplaceStr Schwierigkeiten
Zitat:
Vorschlag:
Delphi-Quellcode:
function convert(astring: Ansistring): string;
var tmp: string; i: integer; begin // Wandelt auch die Umlaute um! tmp := AnsiUpperCase(astring); tmp := AnsiReplaceStr(tmp,'Ä','AE'); tmp := AnsiReplaceStr(tmp,'Ö','OE'); tmp := AnsiReplaceStr(tmp,'Ü','UE'); tmp := AnsiReplaceStr(tmp,'ß','SS'); // alle? nicht Buchstaben löschen // Á, È, ... gehen auch verloren! for i := length(tmp) downto 1 do begin if (tmp[i]<'A') or (tmp[i]>'Z') then delete(tmp,i,1); end; result := tmp; end; |
AW: ReplaceStr Schwierigkeiten
Zitat:
Gibt inzwischen auch noch DeinString.Replace, welches ebenfalls sowas macht. |
AW: ReplaceStr Schwierigkeiten
Einige Vorschläge sind ja ganz nett, aber sprechen wir hier nicht von Delphi 7? :gruebel:
|
AW: ReplaceStr Schwierigkeiten
Das erklärt natürlich einiges.
In Delphi7 gab es ReplaceStr noch nicht. AnsiReplaceStr gab es aber schon. Also diese Funktion verwenden (ist ja eh ein Ansistring) und alles ist gut. |
AW: ReplaceStr Schwierigkeiten
@bcvs
ich hab Delphi 7.01 Enterprise und ich kann ReplaceStr() in meiner Hauptform aufrufen!? Nun kenn sich einer aus. Am Besten ich verwende mal versuchsweise AnsiReplaceStr() Besten Dank an Euch LingNeu |
AW: ReplaceStr Schwierigkeiten
Sofern Du die JVCL nutzen solltest, klappt das auch unter Delphi 7 mit ReplaceStr. Die JVCL hat eine passende Funktion in der JvStrUtils.
Aber für so Aufgaben, wie Du sie hier erledigen musst, nutze ich immer die Ansi...-Funktionen aus der StrUtils. Ein paar der Ansi...-Funktionen sind auch in der SysUtils enthalten. |
AW: ReplaceStr Schwierigkeiten
Zitat:
Doch, gab es, in der Unit StrUtils. Direkte Weiterleitung zu AnsiReplaceStr. Funktioniert bei mir auch einwandfrei. |
AW: ReplaceStr Schwierigkeiten
Zitat:
(Gerade extra noch mal die Quelltexte von Delphi 7 danach durchforstet.) Gibt es da eventuell Unterschiede zwischen den einzelnen Versionen von Delphi 7? |
AW: ReplaceStr Schwierigkeiten
D7 Prof in SysUtils:
function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string; EDIT: Oh, war wohl gar nicht danach gefragt... :oops: |
AW: ReplaceStr Schwierigkeiten
Zitat:
Delphi-Quellcode:
dich genau in die Unit befördern, wo dieses definiert ist.
ReplaceStr
Schon weißt du, welche Unit du verwenden musst. |
AW: ReplaceStr Schwierigkeiten
Zitat:
Aber ReplaceStr gibts nicht ;-) [ooh]hat sich durch Nachtrag erledigt[/ooh] Strg+LinksKlick führen zu keinem Ergebnis. Rechtsklick und Deklaration suchen auch nicht. |
AW: ReplaceStr Schwierigkeiten
Zitat:
Das hilft nur dort, wo etwas gefunden wird, ich aber nicht weiß, aus welcher Unit es kommt. |
AW: ReplaceStr Schwierigkeiten
Zitat:
|
AW: ReplaceStr Schwierigkeiten
Zitat:
Zitat:
|
AW: ReplaceStr Schwierigkeiten
Zitat:
Du hast natürlich recht. Habe Delphi 7 mit Delphi 2007 verwechselt. :oops: |
AW: ReplaceStr Schwierigkeiten
Zitat:
|
AW: ReplaceStr Schwierigkeiten
Von mir nochmals vielen DAnk für die vielen Anregungen!
Viele Grüße LingNeu |
AW: ReplaceStr Schwierigkeiten
Zitat:
Delphi-Quellcode:
?
ReplaceStr
|
AW: ReplaceStr Schwierigkeiten
@Sir Rufo,
war gar nicht leicht festzustellen wo die function ReplaceStr versteckt war. Mit keinem Shortcut ging was. Schließlich habe ich den Pascalanalyzer bemüht und ... die Funktion ist in der Komponente TsiCustomLang (Internationalisierungstool) Gruß an Dich LingNeu |
AW: ReplaceStr Schwierigkeiten
Ich bin neu hier (in dem Thread). Warum verwendet man nicht StringReplace aus der SysUtils-Unit (die eigentlich immer verfügbar ist)?
Was Du hier machst ist in etwas vergleichbar mit dem Import einer Brotfabrik aus Uzbekistan (Nord), um sein Sonntagsbrötchen zu bekommen, was es auch beim Bäcker um die Ecke gibt. Geht, ist aber umständlich. |
AW: ReplaceStr Schwierigkeiten
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23: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