(Gast)
n/a Beiträge
|
AW: ReplaceStr Schwierigkeiten
10. Sep 2015, 11: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;
|
|
Zitat
|