AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ReplaceStr Schwierigkeiten

Ein Thema von LingNeu · begonnen am 10. Sep 2015 · letzter Beitrag vom 12. Sep 2015
Antwort Antwort
LingNeu

Registriert seit: 18. Dez 2006
164 Beiträge
 
Delphi 7 Enterprise
 
#1

AW: ReplaceStr Schwierigkeiten

  Alt 10. Sep 2015, 09:38
@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
Wenn man denkt, dann denkt man nur, das man denkt!
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#2

AW: ReplaceStr Schwierigkeiten

  Alt 10. Sep 2015, 09:41
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
   ...

Geändert von implementation (10. Sep 2015 um 09:46 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.458 Beiträge
 
Delphi 12 Athens
 
#3

AW: ReplaceStr Schwierigkeiten

  Alt 10. Sep 2015, 09:53
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.
  Mit Zitat antworten Zitat
LingNeu

Registriert seit: 18. Dez 2006
164 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: ReplaceStr Schwierigkeiten

  Alt 10. Sep 2015, 10:04
@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
Wenn man denkt, dann denkt man nur, das man denkt!
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#5

AW: ReplaceStr Schwierigkeiten

  Alt 10. Sep 2015, 10:32
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;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:16 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