![]() |
#00 aus String filtern
Hallo Leute
Nun hänge ich an einem Problem, #00 Zeichen aus einem string zu filtern um ihn anständig darstellen zu können. Beispiel: 'H'#0'a'#0'l'#0'l'#0'o'#0' '#0'W'#0'e'#0'l'#0't'#0 Ausgabe: Hallo Welt Mit Stringreplace habe ichs schon versucht aber da das ja kein teil von einem string ist geht das leider nicht :x kann mir da jemand helfen? |
Re: #00 aus String filtern
Du könntest in einer Schleife den String durchgehen und die Zeichen die du brauchst ( <> #0 ) in einen anderen String kopieren.
|
Re: #00 aus String filtern
Kann es sein, dass das ein Unicode String ist?
|
Re: #00 aus String filtern
ich würde die Werte zwischen den Hochkommas lesen...
|
Re: #00 aus String filtern
Zitat:
|
Re: #00 aus String filtern
nun, die Datei ist 50MB groß ^^
und da hab ich das problem das ich nicht einfach in einer schleife die einzlenen #0 weg löschen kann... obwohl die idee echt gut ist ;-) @luckie: wie finde ich raus obs unicode ist? kanns dir nähmlich leider nicht so einfach beantworten :oops: (weil ich es nicht weiß) |
Re: #00 aus String filtern
Zitat:
|
Re: #00 aus String filtern
Datei mit einem TFileStream öffnen und byteweise durchgehen?
|
Re: #00 aus String filtern
Konvertier ihn in einen AnsiString, wenn das funktioniert war es ein UnicodeString. ;)
|
Re: #00 aus String filtern
Zitat:
konnte in in ansi convertieren ;-) geändert hat sich an dem ergebniss aber nichts... |
Re: #00 aus String filtern
Was heißt das?
|
Re: #00 aus String filtern
Zitat:
Zitat:
Wo kommt denn der String her? Zitat:
![]() |
Re: #00 aus String filtern
Zitat:
|
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:
Hier bekomme ich 'temp' was mir als string angezeigt wird.
SetLength(temp,Length(S));
FS.Read(temp[2],Length(S)-1); Doch in diesem String steht dann halt sowas wie: 'H'#0'a'#0'l'#0'l'#0'o'#0 |
Re: #00 aus String filtern
Zitat:
![]() Zitat:
Delphi-Quellcode:
temp: WideString
... SetLength(temp, Length(S) div SizeOf(WideChar)); FS.Read(temp[2]; Length(S)-1); |
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 -.- |
Re: #00 aus String filtern
Zitat:
|
Re: #00 aus String filtern
Zitat:
@Luckie, ja es ist eine :D ich kenne auch die Methode mit der er das macht recht genau... |
Re: #00 aus String filtern
Zitat:
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 ^^ |
Re: #00 aus String filtern
Zitat:
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. |
Re: #00 aus String filtern
nun, deine bedenken sind natürlich berechtigt und sicherlich nicht falsch :-)
Und ja, ich will den MD5 Hash-Wert extrahieren um an das PW zu kommen. Das ist richtig. Jedoch habe ich im moment eine Funktion die eine Schleife 56.000.000 mal durchlaufen muss um an die passende codezeile zu kommen. Wenn ich das ganze also als normalen string verarbeiten könnte währe es mir möglich mit "pos(..." die position zu ermitteln ohne elendige schleifen durlaufen zu lassen, was fast 5 minuten in meinem test dauert :gruebel: normalerweilse haben die heutigen rechner ja ziemlich viel rechenpower aber bei 5 Minuten ist das doch nen bissel lang ^^ vor allem weil es ein Programm in VB gibt welches das ganze in ca. 5 Sekunden hin bekommt :gruebel: ich frag mich noch immer wie es das macht... :wall: |
Re: #00 aus String filtern
Pos gibt es auch für WideString.
(ginge aber nur, wenn der String an 2er-Grenzen ausgerichtet wäre) ansonsten kann man auch alles erstmal Ansi, den String inkl. der #0en suchen lassen und danach erst den Teil in einen Unicode-String kopieren. :gruebel: Du willst aus einem MD5-Hash das gehashte Passwort zurückrechnen? |
Re: #00 aus String filtern
ja, das will ich machen :-) die anleitung dazu habe ich schon
jetzt muss ich nurnoch "effektiv" durchsuchen... das problem ist das sie aktuelle Version die ich dank einem Mitglied hier habe nicht sehr effektiv ist... 5 minuten sind für mich zumindest nicht effektiv ;-) Aber das zurückrechnen, darüber solltest du dir keine sorgen machen. das krieg ich schon hin... ^^ hoffe das was ich hier mache fällt nicht in die illegalen bereiche :gruebel: wobei ich bei PW-recovery nichts illegales sehe... oder irre ich mich? |
DP-Maintenance
Dieses Thema wurde von "mkinzler" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Geht ja wohl um Delphi |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz