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 PCHarReplace (https://www.delphipraxis.net/35668-pcharreplace.html)

Garby 10. Dez 2004 13:45


PCHarReplace
 
Hallo,

hat jemand eine Funktion zur Hand, die das gleiche mit PCHars macht, wie StringReplace mit Strings?

Danke
Garby

Manne 10. Dez 2004 13:55

Re: PCHarReplace
 
Nicht getestet müsste aber funktionieren.
(hab eine Min. bei Google suchen müssen)
Code:
function ReplaceCharFast (const s: string;
  ch1: char; ch2: char): string;
var i: integer;
begin
  Result := s;
  for i := 1 to length (Result) do
    if Result [i] = ch1 then
      Result [i] := ch2;
end;

Garby 10. Dez 2004 13:59

Re: PCHarReplace
 
Hallo,

vielleicht habe ich mich nicht klar genug ausgedrückt.
Ich muss in einer Zeichenkette bestimmte Teilzeichenketten duch neue Zeichenketten ersetzen.
Diese Zeichenketten müssen variabler Länge sein.

Deine Funktion arbeitet mit Chars.

Danke

Dani 10. Dez 2004 14:00

Re: PCHarReplace
 
Hi,
sind Strings und PChars nicht zuweisungskompatibel?

Dax 10. Dez 2004 14:02

Re: PCHarReplace
 
Strings musst du erst zu PChar casten, aber umgekehrt geht es ohne Probleme/Casts. ;)

Garby 10. Dez 2004 14:07

Re: PCHarReplace
 
Genau diesen Cast zu String möchte ich aber vermeiden.

Weiß sonst noch jemad was?

Garby

Luckie 10. Dez 2004 14:39

Re: PCHarReplace
 
Was spricht gegen den Cast?

Garby 10. Dez 2004 14:47

Re: PCHarReplace
 
..dass im PChar Binärdaten stehen, die durch einen Typecast verändert werden.
Oder sehe ich das falsch?

Luckie 10. Dez 2004 14:49

Re: PCHarReplace
 
Nicht das ich wüßte. Ein PChar ist einfach nur ein nullterminierender String.

Garby 10. Dez 2004 15:15

Re: PCHarReplace
 
Vielleicht kurz etwas zum Hintergrund.

Ich entwickle eine DB-Komponente für Mysql.
Dazu verwende ich die libmysql.dll und es funktioniert alles gut.

Das einzige Problem sind BLOBS.
Ich habe eine Komponente, die in einem BLOB Feld Binärdaten speichern will.
Bisher habe ich intern alles über Strings gehandelt, aber leider funktioniert das nicht mit dieser Komponente.

aus der OH der Komponente:
Zitat:

...the database field must have BINARY type (i.e. must have ability to store arbitrary binary data, without conversion and filtering of characters).

Using MEMO is not recommended and impossible, if you want to save Unicode, controls, pictures and tables in binary mode
Das Problem ist auch, dass bei einer Umwandlung nach String zwar Daten gespeichert werden, aber total falsch;

Ich füge die Daten direkt über einen INSERT befehl mittels der Funktion mysql_real_query in die DB ein.
Diese Funkton erwartet einen PChar als SQL String.

Also irgendwie muss das doch funktionieren, oder wie machen das andere :?

Danke
Garby


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:42 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