Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#10

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