Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   ReplaceStr Schwierigkeiten (https://www.delphipraxis.net/186544-replacestr-schwierigkeiten.html)

LingNeu 10. Sep 2015 09:22

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

Sir Rufo 10. Sep 2015 09:27

AW: ReplaceStr Schwierigkeiten
 
Bei Google suchendelphi docwiki replacestr oder Delphi-Referenz durchsuchenReplaceStr

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;

Luckie 10. Sep 2015 09:28

AW: ReplaceStr Schwierigkeiten
 
Sollte eigentlich in System.StrUtils enthalten sein. Zeig mal deinen Code.

Neutral General 10. Sep 2015 09:36

AW: ReplaceStr Schwierigkeiten
 
Gibt es ReplaceStr überhaupt?
Normalerweise ist es doch StringReplace oder nicht?

Oder sind das 2 verschiedene (gleiche) Funktionen?

LingNeu 10. Sep 2015 09:38

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:
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;
danke für jeden Hinweis!
Lingneu

Luckie 10. Sep 2015 09:40

AW: ReplaceStr Schwierigkeiten
 
Ich habe bei Google auf die Schnelle hier gefunden: https://www.google.de/search?q=delph...hi+ReplaceStr+

Aber jetzt, wo du es sagst.... :roll:

implementation 10. Sep 2015 09:41

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
   ...

haentschman 10. Sep 2015 09:53

AW: ReplaceStr Schwierigkeiten
 
Hallöle...
Zitat:

Gibt es ReplaceStr überhaupt?
Normalerweise ist es doch StringReplace oder nicht?

Oder sind das 2 verschiedene (gleiche) Funktionen?
es gibt beide. Zitat DocWiki:
Zitat:

ReplaceStr ist dieselbe Funktion wie AnsiReplaceStr.

Die Funktion StringReplace ist eine eher allgemeine Ersetzungsroutine mit der Option zur Berücksichtigung der Groß-/Kleinschreibung und der Möglichkeit, zu entscheiden, ob alle oder nur das erste Vorkommen des Teilstrings in dem String ersetzt werden soll.

LingNeu 10. Sep 2015 10:04

AW: ReplaceStr Schwierigkeiten
 
@implementation
danke für den Hinweis, aber das habe ich auch gemacht, nur nicht im vorherigen Beispielcode angegeben


Delphi-Quellcode:
 
unit 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;
LingNeu

nahpets 10. Sep 2015 10:32

AW: ReplaceStr Schwierigkeiten
 
Zitat:

Zitat von LingNeu (Beitrag 1315426)
Delphi-Quellcode:
 unit 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;
LingNeu

Da Du mit AnsiStrings arbeitest, nutze doch auch die entsprechenden Funktionen aus der StrUtils.

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;


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:56 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz