Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   #00 aus String filtern (https://www.delphipraxis.net/146312-00-aus-string-filtern.html)

Luckie 17. Jan 2010 20:58

Re: #00 aus String filtern
 
Was heißt das?

Bernhard Geyer 17. Jan 2010 21:01

Re: #00 aus String filtern
 
Zitat:

Zitat von divBy0
Du könntest in einer Schleife den String durchgehen und die Zeichen die du brauchst ( <> #0 ) in einen anderen String kopieren.

Und schon hast du das €-Zeichen verloren bzw. fehlerhaft interpretiert.


Zitat:

Zitat von stho
konnte in in ansi convertieren ;-)
geändert hat sich an dem ergebniss aber nichts...

Du mußt den String als Unicodestring einlesen. Dann kannst du ihn auch korrekt verarbeiten.
Wo kommt denn der String her?

Zitat:

Zitat von stho
@luckie:
wie finde ich raus obs unicode ist?
kanns dir nähmlich leider nicht so einfach beantworten :oops: (weil ich es nicht weiß)

I.d.R. haben Unicodetextdateien einen entsprechenden BOM-Kennzeichner. Das Elpack, TNTWare oder die Unicodeklassen (TXXStringlist und Co.) aus der JCL machen das für dich automatisch.

divBy0 17. Jan 2010 21:06

Re: #00 aus String filtern
 
Zitat:

Zitat von Bernhard Geyer
Zitat:

Zitat von divBy0
Du könntest in einer Schleife den String durchgehen und die Zeichen die du brauchst ( <> #0 ) in einen anderen String kopieren.


Wieso? Das €-Zeichen sollte eigentlich #80 sein.

stho 17. Jan 2010 21:06

Re: #00 aus String filtern
 
okay, also ich versuche mal so zu antworten:
Der Text den ich verarbeiten will kommt aus einer Datei die ich als TFileStream eingelesen habe.

Wie kann ich den text denn als Unicode einlesen?

Delphi-Quellcode:
        SetLength(temp,Length(S));
        FS.Read(temp[2],Length(S)-1);
Hier bekomme ich 'temp' was mir als string angezeigt wird.
Doch in diesem String steht dann halt sowas wie: 'H'#0'a'#0'l'#0'l'#0'o'#0

Bernhard Geyer 17. Jan 2010 21:14

Re: #00 aus String filtern
 
Zitat:

Zitat von divBy0
Wieso? Das €-Zeichen sollte eigentlich #80 sein.

#$80 im Ansibereich ja, aber nicht #$0080 im Unicodebereich sondern #$20AC


Zitat:

Zitat von stho
Wie kann ich den text denn als Unicode einlesen?

Ohne Gewähr das genau die Byteanzahl passt:
Delphi-Quellcode:
  temp: WideString
  ...
  SetLength(temp, Length(S) div SizeOf(WideChar));
  FS.Read(temp[2]; Length(S)-1);

stho 17. Jan 2010 21:33

Re: #00 aus String filtern
 
funktioniert leider nicht :-(
Was kann ich bloß tun?
muss ich den string erst als .txt speichern und ihn dann neu laden?
könnte das was bringen?
ist nur ne sehr unschöne variante -.-

Luckie 17. Jan 2010 21:34

Re: #00 aus String filtern
 
Zitat:

Zitat von stho
Der Text den ich verarbeiten will kommt aus einer Datei die ich als TFileStream eingelesen habe.

Das ist nicht zufällig eine MDB-Datei? ;)

phreax 17. Jan 2010 21:36

Re: #00 aus String filtern
 
Zitat:

Zitat von divBy0
Du könntest in einer Schleife den String durchgehen und die Zeichen die du brauchst ( <> #0 ) in einen anderen String kopieren.

Das sollte doch die einfachste Lösung für dein Problem sein, da nur #0 als Füllzeichen vorkommt...

@Luckie, ja es ist eine :D ich kenne auch die Methode mit der er das macht recht genau...

stho 17. Jan 2010 22:00

Re: #00 aus String filtern
 
Zitat:

Zitat von phreax
Zitat:

Zitat von divBy0
Du könntest in einer Schleife den String durchgehen und die Zeichen die du brauchst ( <> #0 ) in einen anderen String kopieren.

Das sollte doch die einfachste Lösung für dein Problem sein, da nur #0 als Füllzeichen vorkommt...

@Luckie, ja es ist eine :D ich kenne auch die Methode mit der er das macht recht genau...


LALALA :-D
ich weiß nicht wovon ihr redet ^^
ich sing ein lied und freu mich mal ^^

ja klar, natürlich ists eine MDB datei ;-)

nun, ich schau mal ob ich die #0 nicht doch irgendwie da raus bekommen kann ^^

himitsu 18. Jan 2010 02:44

Re: #00 aus String filtern
 
Zitat:

'H'#0'a'#0'l'#0'l'#0'o'#0' '#0'W'#0'e'#0'l'#0't'#0
Wie schon gesagt wurde: Dieses sieht nach Unicode aus und wenn man diesen Teil in einen Unicode-String (in deinem Fall der WideString) reinläd, dann sollte es klappen.

PS: Warum willst du alles in ein Memo laden?
Ich denke dein Programm soll das Passwort entschlüsseln/extrahieren.
Also verarbeite alles erstmal intern und zeige dann nur das Ergebnis (das Passwort) an.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:47 Uhr.
Seite 2 von 3     12 3      

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