AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Konvertierung der Umlaute einer Dosdatei im Tmemo
Thema durchsuchen
Ansicht
Themen-Optionen

Konvertierung der Umlaute einer Dosdatei im Tmemo

Ein Thema von joehd · begonnen am 13. Aug 2023 · letzter Beitrag vom 16. Aug 2023
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

AW: Konvertierung der Umlaute einer Dosdatei im Tmemo

  Alt 14. Aug 2023, 09:35
Njain, Fonts ala Terminal und Consolas und haben nichts mit Codepages und Co. zu tun.

OK, das Font.Charset schon, aber hat das seit Unicode (Delphi 2009) noch eine Wirkung?



Beziehen sie sich nicht nur auf einen 8-Bit-ANSI-String, oder wie?
https://learn.microsoft.com/en-us/wi...character-sets
Fand jetzt nur was zum Lesen, aber nichts zum Zuweisen
https://learn.microsoft.com/en-us/wi...gettextcharset
https://learn.microsoft.com/en-us/wi...extcharsetinfo
und im TFont.SetCharset hab ich mich im Fontmanager verloren und sehe nirgends, dass damit auch was gemacht wird.



Obwohl, das Wiki sagt
https://docwiki.embarcadero.com/Libr....TFont.Charset
hmmmmmmmmmmmmmmm......?



[add]
Ob mit CharSet oder ohne, ich sehe keinen Unterschied.
Delphi-Quellcode:
procedure TForm25.FormCreate(Sender: TObject);
begin Memo1.Text := 'a'#$84'b'#$0084'c';
  Memo1.Font.Name := 'Terminal';
// Memo1.Font.Charset := OEM_CHARSET;
  Memo1.Font.Size := 20;
end;
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (14. Aug 2023 um 10:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Konvertierung der Umlaute einer Dosdatei im Tmemo

  Alt 14. Aug 2023, 10:16
Da der Reader mit TEncoding.Ansi erzeugt wurde, erfolgt die fehlerhafte Umwandlung in Unicode bereits im Reader.Readline , weil die Datei ja gerade eben nicht Ansi-codiert ist. Danach ist das kaum noch in den Griff zu bekommen. Mit dem von mir weiter oben beschriebenen Encoding sollte das aber funktionieren.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Konvertierung der Umlaute einer Dosdatei im Tmemo

  Alt 14. Aug 2023, 12:06
Zweiter Versuch ohne viel schnick-schnack:
Delphi-Quellcode:
procedure ReadFileToMemo(const AFilename: string; const AMemo: TMemo; const ACodePage: Integer = 850);
var
  Reader: TStreamReader;
  Encoding: TEncoding;
  Line: string;
begin
  Encoding := TEncoding.GetEncoding(ACodePage);
  try
    Reader := TStreamReader.Create(AFilename, Encoding);
    try
      AMemo.Lines.BeginUpdate;
      AMemo.Clear;
      while not Reader.EndOfStream do
      begin
        Line := Reader.ReadLine;
        AMemo.Lines.Add(Line);
      end;
      AMemo.Lines.EndUpdate;
    finally
      Reader.Free;
    end;
  finally
    Encoding.Free;
  end;
end;
// hab noch ein argument zum easy wechseln hinzugefügt
Dies sollte dem Beispiel von Uwe schon recht nahe kommen.
Angehängte Grafiken
Dateityp: png Bild_2023-08-14_130557237.png (1,1 KB, 9x aufgerufen)
Gruß vom KodeZwerg

Geändert von KodeZwerg (14. Aug 2023 um 12:25 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Konvertierung der Umlaute einer Dosdatei im Tmemo

  Alt 14. Aug 2023, 13:26
Dies sollte dem Beispiel von Uwe schon recht nahe kommen.
In der Tat tut GetEncoding auch nichts anderes, solange die übergebene Codepage keinem der im case angegebenen Sonderfälle entspricht.

Allerdings könnte man es ja auch mal mit einem simplem AMemo.LoadFromFile(AFileName, Encoding); versuchen - so wegen ohne viel schnick-schnack...
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
joehd

Registriert seit: 8. Okt 2008
Ort: Heidelberg
110 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Konvertierung der Umlaute einer Dosdatei im Tmemo

  Alt 14. Aug 2023, 19:57
Hallo
Danke erstmal das mit dem Encoding hat top funktioniert.
Das bedeutet nicht das das andere nicht funktioniert hätte aber es war auch einfach ...
Ich wusste bis heute nicht das es Encoding gibt und ich habe schon viele Tmemo geladen Danke !!
Guter Tip
Danke !!!!

Hier der Code für andere ...


Delphi-Quellcode:
var x,y: Integer;
    FilenameS,FilenameD : String;
    myEncoding : Tencoding; // myEncoding := TMBCSEncoding.Create(850);

Begin
  myEncoding := TMBCSEncoding.Create(850); // hier gibt es auch andere Siehe das Embarcadero WICKI weiter vorne
  // diverses for dem Laden des Files

  // old // form1.GDT_TEMP.Lines.LoadFromFile(Filenames); // bei While immer auf 0 setzen

 form1.GDT_TEMP.Lines.LoadFromFile(Filenames,myEncoding); // bei While immer auf 0 setzen

  // tu dann was mit dem Memo Inhalt

end;
joe
immer wenn ich was suche finde ich es hier komisch oder ?
Arbeite mit D3 D5 D2007 DXE Prof

Geändert von joehd (14. Aug 2023 um 20:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Konvertierung der Umlaute einer Dosdatei im Tmemo

  Alt 14. Aug 2023, 20:08
selbst-erstellte TEncoding freigeben (Free)

nur die 5 Standard-Encodings, welche aus gewissen Property/Methoden raus kommen ... die nicht freigeben.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (14. Aug 2023 um 20:15 Uhr)
  Mit Zitat antworten Zitat
joehd

Registriert seit: 8. Okt 2008
Ort: Heidelberg
110 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Konvertierung der Umlaute einer Dosdatei im Tmemo

  Alt 16. Aug 2023, 18:10
Danke himitsu stimmt hatte ich vergessen leider kann ich es nicht mehr editieren ...
DANKE
joe
immer wenn ich was suche finde ich es hier komisch oder ?
Arbeite mit D3 D5 D2007 DXE Prof
  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 10:34 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