Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Nicht sichtbare Zeichen im String eliminieren (https://www.delphipraxis.net/9637-nicht-sichtbare-zeichen-im-string-eliminieren.html)

Tyrael Y. 30. Sep 2003 15:53


Nicht sichtbare Zeichen im String eliminieren
 
Hallo zusammen,

ich möchte ganz gerne einige werte in eine ini Datei schreiben..
unter anderem auch SQL - Anweisungen...
... manche der SQL-Anweisungen gehen über mehrere Zeilen und beinhalten somit ein Enter-Zeichen bzw.#13#10

... wie kann ich nicht sichtbare Zeichen innerhalb eines Strings geschickt eliminieren...?

... die nicht sichtbaren Zeichen sind mitten im String angelagert


danke für jeden Vorschlag


P.S.: Leerzeichen sollen natürlich erhalten bleiben

Christian Seehase 30. Sep 2003 17:32

Re: Nicht sichtbare Zeichen im String eliminieren
 
Moin Tyrael,

wenn Du Werte hast, die über mehrere Zeilen gehen und in einer INI gespeichert werden sollen, kannst Du sie ja zeilenweise in aufeinanderfolgenden Idents speichern.
Die einfachste Variante Zeichen zu eleminieren wäre wohl die Funktion StringReplace.
Aufwändiger aber schneller wäre es den String in einen anderen zeichenweise zu übernehmen, und dabei einfach die unterwünschten Zeichen wegzulassen.

Tyrael Y. 1. Okt 2003 08:21

Re: Nicht sichtbare Zeichen im String eliminieren
 
Morgen zusammen,

Zitat:

wenn Du Werte hast, die über mehrere Zeilen gehen und in einer INI gespeichert werden sollen, kannst Du sie ja zeilenweise in aufeinanderfolgenden Idents speichern.
Leider kann ich das nicht. Die Werte, bzw die SQL-Anweisung muss letztendlich in einem Key stehen,
jede Anweisung ein Key. Das ist später für die Auswertung wichtig.

Zitat:

Aufwändiger aber schneller wäre es den String in einen anderen zeichenweise zu übernehmen, und dabei einfach die unterwünschten Zeichen wegzulassen.
1. Wie kann ich einen String zeichenweise übernehmen. Doch nicht etwa mit copy() , oder?
Bei c++ wäre es einfach da ein String ein Array of Chars ist.
In Delphi ist es, denke ich auch intern ein Array of Char, aber kann ich die einzelnen Zeichen mit mit myString[i]
ansprechen ?
2. Wie kann ich denn das nicht sichtbare Zeichen identifizieren, über #Zahl?

danke im voraus.

Gruß Tyrael

Honie 1. Okt 2003 08:48

Re: Nicht sichtbare Zeichen im String eliminieren
 
Hi,


Delphi-Quellcode:
var
  i: integer;
  source,dest: string;

begin
  source := 'Das ist '#13#10'ein Test '#8'mit Sonderzeichen;
  dest := '';
  for i := 1 to length(source) do
    if ord(source[i])>=32 then
      dest := dest+source[i];
end;
Sollte für 1-Byte Zeichensätze funktionieren. Für eventuelle Probleme mit WideStrings
sollte man zum extrahieren der einzelnen Zeichen eine entsprechende Fuktion nehmen und
nicht mit [] auf das Zeichen zu greifen.

Gruß
Holger

[edit=Christian Seehase] Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]

Tyrael Y. 1. Okt 2003 09:19

Re: Nicht sichtbare Zeichen im String eliminieren
 
Danke schön.

klappt alles :)

Jens Schumann 1. Okt 2003 11:53

Re: Nicht sichtbare Zeichen im String eliminieren
 
Hallo,
hier kommt die schnellste Variante, die ich kenne
Delphi-Quellcode:
function DeleteNonNumbers(const Value: String): String;
var
  I: Integer;
  P: PChar;
begin
  SetLength(Result, Length(Value));
  P := PChar(Result);
  for I := 1 to Length(value) do
    if ord(source[i])>=32 then
    begin
      P^ := Value[I];
      Inc(P);
    end;
  SetLength(Result, P - PChar(Result));
end;
Quelle

Tyrael Y. 1. Okt 2003 14:50

Re: Nicht sichtbare Zeichen im String eliminieren
 
Sieht vielversprechend aus, ich werde es mal testen


Gruß Tyrael


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:01 Uhr.

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