AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi [Erledigt] Speichern von RCx-Zeichen in Textdatei
Thema durchsuchen
Ansicht
Themen-Optionen

[Erledigt] Speichern von RCx-Zeichen in Textdatei

Ein Thema von Root2k · begonnen am 16. Jun 2011 · letzter Beitrag vom 17. Jun 2011
Antwort Antwort
Root2k

Registriert seit: 7. Jun 2011
Ort: Ulm
49 Beiträge
 
Delphi XE Enterprise
 
#1

[Erledigt] Speichern von RCx-Zeichen in Textdatei

  Alt 16. Jun 2011, 15:16
Hi,

ich wollte mal fragen ob mir jemand sagen kann wie ich die umgewandelten/zurückgegebenen Zeichen (z.B. 황暫ꮃ审湆�꡻椎ꫡ) einer http://www.delphipraxis.net/140859-r...uesselung.html in einer Textdatei abspeichern und wieder auslesen kann.

Ich speichern die Daten auf folgende Weise ab:

Code:
procedure TForm1.BtnSaveClick(Sender: TObject);
var
  Datei: TextFile;

begin
  AssignFile(Datei,'d:\tmp.txt');
  Rewrite(Datei);
  if IOResult = 0 then
  begin
    writeln(Datei, OutputCrypt.Text);
    CloseFile(Datei);
  end;

end;
Allerdings stehen dann in der Textdatei nur Fragezeichen. Liegt das an der Zeichenkodierung?

Kann mir vielleicht einer sagen wie ich die Zeichen richtig abspeichern kann?
Bin noch ziemlich neu in der Delphi-Programmierung (und diesem Board) und kenn mich deshalb auch noch nicht so gut aus.


Gruß,
Root2k

PS: Ich hoffe dass ich den richtigen Bereich gewählt hab.

Geändert von Root2k (17. Jun 2011 um 12:31 Uhr)
  Mit Zitat antworten Zitat
fui-tak

Registriert seit: 24. Okt 2008
117 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: Speichern von RCx-Zeichen in Textdatei

  Alt 16. Jun 2011, 15:29
Ich denke es könnte gehen, indem du die zu den Zeichen zugehörigen Unicode-Zahlen, statt den Zeichen selbst, abspeicherst.
Delphi-Quellcode:
vers, ausg: string;
i: integer;
...

vers := OutputCrypt.Text;
ausg := '';

for i := 0 to length(vers) -1 do
   ausg := ausg + Ord(vers[i]) + ';';

...
writeln(Datei, ausg);
Die Textdatei sieht dann irgendwie so aus: 12;58;499;34;

Beim späteren Einlesen kannst du die Zahlen mit Chr(Zahl) wieder zu Zeichen machen.

Geändert von fui-tak (16. Jun 2011 um 15:32 Uhr)
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#3

AW: Speichern von RCx-Zeichen in Textdatei

  Alt 16. Jun 2011, 15:40
Vorsicht, fui-tak, das geht in die Hose:
ord und chr funktionieren nur bei einem Wertebereich von 0-255, also nur bei ANSI-Chars, bei UniCode-Zeichen dagegen, die über diesem Wertebereich liegen, knallt es.
Also ist das defintiv nicht der Weg zu gehen.


Edit: Uhm...da habe ich mich wohl getäuscht. Danke für den Hinweis, Himitsu. Aber merkwürdig, ich war mir egentlich sicher, dass ich mal eine Grenzenverletzung hatte von ord / chr bei Unicode-Zeichen (D2009)...hmm

Aber, bevor ich evtl. Speicher-Möglichkeiten beschreibe:
Welche Delphi-Version benutzt du, Root2k?

Geändert von blackfin (17. Jun 2011 um 09:03 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.254 Beiträge
 
Delphi 12 Athens
 
#4

AW: Speichern von RCx-Zeichen in Textdatei

  Alt 16. Jun 2011, 15:57
Ord und Chr (nicht Char) sind virtuelle Funktionen

Chr = erstellt einen Char und nimmt jeden Integertypen an
Ord = erstellt einen Integer und nimmt AnsiChar, WideChar/Char und andere ordinale Typen, wie z.B. ENUMs entgegen.

Und ja, die beiden "Funktionen" verstehen auch Unicode.

Den Text binär in einen Stream und darüber abspeichern.

Die so kodierten Daten sind nunmal kein "Text" mehr und enthalten (auf Text/Strings bezogen ) Steuerzeichen und eventuell Zeichen, welche je nach Zeichensatz unterschiedlich interpretiert werden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Root2k

Registriert seit: 7. Jun 2011
Ort: Ulm
49 Beiträge
 
Delphi XE Enterprise
 
#5

AW: Speichern von RCx-Zeichen in Textdatei

  Alt 17. Jun 2011, 08:59
Danke erstmal für die ganzen Antworten.

Welche Delphi-Version benutzt du, Root2k?
Sorry, hab ich vergessen in meinem Profil anzugeben.
Ich programmiere mit Delphi XE (Enterprise).

Danke auch für den Hinweis mit Ord und Chr. Ich probiere jetzt auf jeden Fall mal aus was ich damit alles anstellen kann.
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#6

AW: Speichern von RCx-Zeichen in Textdatei

  Alt 17. Jun 2011, 09:09
Schreibe die Datei doch einfach über einen Stream:

Delphi-Quellcode:
procedure Save(CryptText: string; OutFileName: string);
var
  FStream: TStream;
begin
  ForceDirectories(ExtractFilePath(OutFileName)) ;
  
  if FileExists(OutFileName) then
  begin
   FStream := TFileStream.Create(OutFileName,fmOpenReadWrite) ;
   FStream.Seek(0,soFromEnd) ;
  end
  else
   FStream := TFileStream.Create(OutFileName,fmCreate) ;
  
  FStream .Write(Pointer(CryptText)^,Length(CryptText)* SizeOf(Char)) ;
  FreeAndNil(FStream) ;
end;

Geändert von blackfin (17. Jun 2011 um 09:16 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:27 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