Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi replace und upperstring (https://www.delphipraxis.net/63856-replace-und-upperstring.html)

sharpals 23. Feb 2006 18:35

Delphi-Version: 1

replace und upperstring
 
hallo, hier zwei kleine functionen für die stringmanipulation,

wieso werden die einrückungen nicht angezeigt ??

Delphi-Quellcode:
// gibt die eingabe als Großbuchstaben
function upper(eing: string): string;
var
  i: Byte;
  buff: string;
begin
  buff := '';
  for i := 1 to length(eing) do
    buff := buff + upcase(eing[i]);
  upper := buff;
end;

// ersetzt eine zeichenfolge, gegen eine andere und gibt sie zurück
function replace(eingabe, such, ersatz: string): string;
var
  i: byte;
  lp: string;
begin
  lp := '';

  while pos(such,eingabe) > 0 do
  begin
    i := pos(such, eingabe);
    lp := lp + copy(eingabe, 1, i - 1) + ersatz;

    delete(eingabe, 1, i + length(such) - 1);
  end;

  replace := lp + eingabe;
end;
[edit=Matze]Delphi-Tags gesetzt und Code formatiert, das war ja schlimm. :zwinker: Mfg, Matze[/edit]

himitsu 23. Feb 2006 18:41

Re: replace und upperstring
 
Zitat:

Zitat von sharpals
wieso werden die einrückungen nicht angezeigt ??

Weil da das [delphi]-Tag fehlt ???


Aber wozu sind diese denn gut?

Nicht daß die extrem uneffektiv programiert wären ... spezell upper (die ander hab'sch mir noch garnicht angesehn) ... es gibt diese ja auch schon (upper ist eigentlich immer in Delphi vorhanden) und für Replace gibt's auch was besseres in der CodeLib, oder in den "neueren Delphiversionen.

Das wäre z.B. schon mal etwas schneller und es ginge noch besser (z.B. mit Hile von 'nem knuffigem PChar ^^)
Delphi-Quellcode:
function upper(eing:string):string;
var i:byte;
begin
     setlength(result, eing);
     for i:=1 to length(eing)
     do
            result[i]:=upcase(eing[i]);
end;

idontwantaname 23. Feb 2006 18:43

Re: replace und upperstring
 
Warum nimmst du nicht den [ delphi ] - Tag ??

Und zu deinen Funktionen: Warum sollte ich deine verwenden und nicht Delphi-Referenz durchsuchenUpperCase und Delphi-Referenz durchsuchenReplaceStr ??

sharpals 23. Feb 2006 21:46

Re: replace und upperstring
 
tja delphi ist riesig, da kennt man nicht alles :-)

aber sie sind sowiso uralt und stammen aus meiner TP-3 / 4
Zeit. Da sie laufen, verwende(te) ich sie halt weiter.

Aber wenn es einen ersatz im delphi gibt ...

Natürlich läßt sich das mit delphi schneller machen, aber zu der zeit , war die deviese : keine großen tricks, es sollte transparent bleiben.

Außerdem gibt es hier auch einsteiger da können sie einfach als beispiel dienen.

ABer danke für den hinweis.

himitsu 24. Feb 2006 11:22

Re: replace und upperstring
 
Zitat:

Zitat von idontwantaname
Und zu deinen Funktionen: Warum sollte ich deine verwenden und nicht Delphi-Referenz durchsuchenUpperCase und Delphi-Referenz durchsuchenReplaceStr ??

Zu ReplaceStr ... das gibt's ja nicht in jeder Delphi-Version (vorallem nicht in D4 und abwärts, und wie's bei D5 und D6 aussieht, weiß gerade ich nicht)

Aber wie gesagt, es gibt da ja schon was in der CodeLib :shock:
Ersatz für StringReplace

RavenIV 24. Feb 2006 12:36

Re: replace und upperstring
 
Zitat:

Zitat von sharpals
tja delphi ist riesig, da kennt man nicht alles :-)

aber sie sind sowiso uralt und stammen aus meiner TP-3 / 4
Zeit. Da sie laufen, verwende(te) ich sie halt weiter.

Aber wenn es einen ersatz im delphi gibt ...

du solltest mal öfter in die Delphi-Hilfe schauen, da hat's interessante sachen drin.

und vor allem sind die in Delphi integrierten Funktionen (soweit ich weiss) in Assembler erstellt und somit sehr sehr effektiv und schnell.

sharpals 24. Feb 2006 14:22

Re: replace und upperstring
 
:-) meist verwende ich die win32 help, die beiden funktionen hatte ich sehr selten benötigt. Delphi sollte es schon schneller machen.

Das Problem ist eher, daß delphi und C++ derart am umfang zugenommen haben, daß man sich darinn verlaufen kann.

an himitsu:

Wenn ich mir die alternative ,, replace '' anschaue ist sie länger als meine. Aber übersichtlicher.

Was natürlich nicht für die fasversion aus der bibliothek gilt, da scheint maschinensprache im spiel zu sein ?

Gruß


ABer wie geht das mit den delphi tags hier im forum ?

marabu 24. Feb 2006 14:26

Re: replace und upperstring
 
Hallo sharpals,

öffne den Beitrageditor und spiele ein wenig mit den Schaltern in der Werkzeugleiste. Du musst ja deine Übungsbeiträge nicht einstellen, Vorschau reicht.

Freundliche Grüße vom marabu

Daniel G 24. Feb 2006 14:28

Re: replace und upperstring
 
Du klickst in dem Fenster "Antwort schreiben" auf "Delphi - Code".

Dann bekommst du ein "
Delphi-Quellcode:
" Dann schreibst du deinen Delphi - Kram und klickst nochmal auf "Delphi - Code*" (Man beachte den Stern). Dann bekommst du ein "
", welches den Ausdruck wieder schließt.

Delphi-Quellcode:
Aha := TVerstanden.Create;
Aha.kapiert := true;
//Oder probiere es einfach aus, frei nach marabu

xaromz 24. Feb 2006 15:06

Re: replace und upperstring
 
Hallo,
Zitat:

Zitat von RavenIV
und vor allem sind die in Delphi integrierten Funktionen (soweit ich weiss) in Assembler erstellt und somit sehr sehr effektiv und schnell.

Also die StringReplace-Funktion von Delphi ist eine mittlere Katastrophe. So ziemlich jede andere Implementierung ist schneller. Beispielsweise benötigt diese Funktion überproportional länger, je öfter in einem String ersetzt wird.
Deshalb hab ich mir auch vor einiger Zeit meine eigene geschrieben (ich nutze WideStrings, deshalb ist auch die CodeLib nix für mich), und meine Routinen sind bisher die schnellsten, die ich gefunden habe (und das ohne Assembler).

Gruß
xaromz


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:07 Uhr.
Seite 1 von 2  1 2      

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