AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Stringkonvertierung

Ein Thema von HPB · begonnen am 4. Jul 2014 · letzter Beitrag vom 6. Jul 2014
Antwort Antwort
Seite 1 von 2  1 2      
HPB

Registriert seit: 2. Jun 2008
365 Beiträge
 
Delphi XE7 Professional
 
#1

Stringkonvertierung

  Alt 4. Jul 2014, 09:52
Guten Tag Delphianer,
ich habe folgendes Problem bei der Konvertierung von Strings:
in einer Datei (DATANORM) steht folgende Zeile:

Dyckerhoff Zement CEM II 32,5 R, 25 kg;(Achtung Farb„nderung)

wenn ich die Datei mit dem TotelCommander öffne (Lister) steht folgendes:
Dyckerhoff Zement CEM II 32,5 R, 25 kg;(Achtung Farbänderung)

also die korrekte Umsetzung.

Der TotalCommander benutzt die ASCII-Codierung (ANSI/DOS (lokale Codeseite (1), wie feststellen konnte.
Stelle ich die Codierung im TotalCommander zu Testzwecken um, werden für die Umlaute wieder andere Zeichen dargestellt.

Aber wie kann ich die korrekte Darstellung, Umwandlung erreichen?
Mit welchem Befehl, Funktion kann die Umwandlung gelingen?
Die Umwandlung mit UTF8..., OEMTo... habe ich alles versucht. War aber nicht mit Erfolg gekrönt.
Vielen Dank für Eure Mühen.
Gruß
HPB
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.867 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Stringkonvertierung

  Alt 4. Jul 2014, 10:00
Wie lädst du die Datei in Delphi?
Markus Kinzler
  Mit Zitat antworten Zitat
HPB

Registriert seit: 2. Jun 2008
365 Beiträge
 
Delphi XE7 Professional
 
#3

AW: Stringkonvertierung

  Alt 4. Jul 2014, 10:02
Wie lädst du die Datei in Delphi?
Delphi-Quellcode:
  AssignFile(fDatei, aDatei);
{$I-}Reset(fDatei);
{$I+ }
und dann mit while not Eof(fDatei) jede Zeile lesen
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.599 Beiträge
 
Delphi 12 Athens
 
#4

AW: Stringkonvertierung

  Alt 4. Jul 2014, 12:05
Delphi-Quellcode:
  AssignFile(fDatei, aDatei);
{$I-}Reset(fDatei);
{$I+ }
und dann mit while not Eof(fDatei) jede Zeile lesen
Du kannst doch bei AssignFile als dritten Parameter die Codepage mitgeben.

AssignFile(fDatei, aDatei, 1);
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Stringkonvertierung

  Alt 4. Jul 2014, 12:24
Du kannst doch bei AssignFile als dritten Parameter die Codepage mitgeben.

AssignFile(fDatei, aDatei, 1);
War das nicht die Rect-Größe?
[edit] Halt, RecSize wurde beim Reset/Rewrite angegeben.

Aber dem AnsiString-Read/ReadLn kann man die CodePage mitgeben. (laut dem QuellCode der XE-System.pas)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
HPB

Registriert seit: 2. Jun 2008
365 Beiträge
 
Delphi XE7 Professional
 
#6

AW: Stringkonvertierung

  Alt 6. Jul 2014, 11:03
Guten Tag Delphianer,
vielen Dank an allen die bei der Lösung des Problems geholfen haben.
Letztendlich hab ich den Vorschlag von Uwe Raabe genommen:

Zitat:
Du kannst doch bei AssignFile als dritten Parameter die Codepage mitgeben.

AssignFile(fDatei, aDatei, 1);
Dies schien mir zum jetzigen Zeitpunkt die einfachste Lösung zu sein.
Jetzt kann ich auch weiter an die Erneuerung des Quellcodes gehen.
Das Thema kann nun geschlossen werden.
Mit besten Gruß
HPB
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.655 Beiträge
 
Delphi 12 Athens
 
#7

AW: Stringkonvertierung

  Alt 4. Jul 2014, 10:01
Delphi-Quellcode:
const
  Test = 'Achtung Farb„nderung';
var
  s: string;
begin
  SetLength(s, Length(Test));
  OEMToCharBuff(PAnsiChar(Test), PChar(s), Length(Test));
  ShowMessage(s);
end;
Sah gut aus.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
HPB

Registriert seit: 2. Jun 2008
365 Beiträge
 
Delphi XE7 Professional
 
#8

AW: Stringkonvertierung

  Alt 4. Jul 2014, 10:10
Delphi-Quellcode:
const
  Test = 'Achtung Farb„nderung';
var
  s: string;
begin
  SetLength(s, Length(Test));
  OEMToCharBuff(PAnsiChar(Test), PChar(s), Length(Test));
  ShowMessage(s);
end;
Sah gut aus.
Habe ich gerade ausprobiert. Die Umlaute sind nicht vorhanden.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.655 Beiträge
 
Delphi 12 Athens
 
#9

AW: Stringkonvertierung

  Alt 4. Jul 2014, 10:12
Komisch, bei mir schon.

[edit] @Blup: Lies mal die Bemerkungen zu OEMToChar/CharToOEM, Dein Code wird unter Delphi > 2007 knallen. Außerdem rät Microsoft selbst von der Verwendung ab.[/edit]
[edit2] Sry, ich hab übersehen, dass Du alles als AnsiStrings deklariert hast. Damit bleibt nur noch Punkt 2. [/edit2]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH ( 4. Jul 2014 um 10:19 Uhr)
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.739 Beiträge
 
Delphi 6 Enterprise
 
#10

AW: Stringkonvertierung

  Alt 4. Jul 2014, 10:20
Vllt. was zur Codierung, könnte helfen:

Zitat:
Die DATANORM-Schnittstelle ist auf eine minimale Hardware-Konfiguration zugeschnitten und erlaubt somit den weitreichenden Einsatz. Alle Datensätze bestehen aus reinem ASCII-Text, wobei jeder Satz exakt 128 Zeichen lang und durch eine Zeichenschaltung (Carriage return/0DH 0AH) abgeschlossen ist.

Der erlaubte Zeichenvorrat lehnt sich an den IBM-Zeichensatz an, wobei jedoch nur die unteren 128 Zeichen erlaubt sind. Lediglich die deutschen Sonderzeichen bilden hier eine Ausnahme und tragen weiterhin die Positionscodes des erweiterten ASCII-Zeichensatzes.
Quelle:
http://www.textarchiv.alojado.de/tex...en-ap1387.html
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:52 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 by Thomas Breitkreuz