Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Prism Umlaute in Textdatei (https://www.delphipraxis.net/60953-umlaute-textdatei.html)

peter12 14. Jan 2006 19:47


Umlaute in Textdatei
 
in Delphi 2006 net
Versuche eine Textdatei einzulesen bekomme aber keine Umläute.

reader := &File.OpenText('c:\KB43.125');
TextBox31.text := reader.ReadLine();
Was wer warum
peter

Bernhard Geyer 14. Jan 2006 20:11

Re: Umlaute in Textdatei
 
Zitat:

Zitat von peter12
Was wer warum

Wie schaut den das Ergebnis aus?
Ist es evtl. eine UTF8 oder Unicode-Codierte Textdatei?

rory 14. Jan 2006 20:19

Re: Umlaute in Textdatei
 
Und wie werden die nicht vorhandenen Umlaute dargestellt (Schriftarten, die keine Umlaute enthalten, neigen oft zu kleinen Rechtecken)?

Edit: Tippfehler korrigiert und Edit-Funktion des Forums ausprobiert.

peter12 15. Jan 2006 09:11

Re: Umlaute in Textdatei
 
Die Umlaute werden ausgelassen
Als wenn sie nicht da wären.
Weiß >>> Wei
Prügl >>>> Prgl
Schön >>>>> schn

peter

Bernhard Geyer 15. Jan 2006 09:15

Re: Umlaute in Textdatei
 
1, Kannst Du die Datei posten
2, Kannst Du ein Beispielprojekt erstellen und posten.

bundy 15. Jan 2006 09:22

Re: Umlaute in Textdatei
 
Hi

Probier mal:


Delphi-Quellcode:
Memo1.Lines.LoadFromFile('c:\text.txt');

peter12 15. Jan 2006 09:43

Re: Umlaute in Textdatei
 
Delphi-Quellcode:
unit WinForm4;

interface

uses
  System.Drawing, System.Collections, System.ComponentModel,
  System.Windows.Forms, System.Data;

type
  TWinForm4 = class(System.Windows.Forms.Form)
  {$REGION 'Vom Designer verwalteter Code'}
  strict private
    /// <summary>
    /// Erforderliche Designervariable.
    /// </summary>
    Components: System.ComponentModel.Container;
    Button1: System.Windows.Forms.Button;
    TextBox1: System.Windows.Forms.TextBox;
    /// <summary>
    /// Erforderliche Methode zur Unterstützung des Designers -
    /// ändern Sie die Methode nicht mit dem Quelltext-Editor
    /// </summary>
    procedure InitializeComponent;
    procedure Button1_Click(sender: System.Object; e: System.EventArgs);
  {$ENDREGION}
  strict protected
    /// <summary>
    /// Ressourcen nach der Verwendung bereinigen
    /// </summary>
    procedure Dispose(Disposing: Boolean); override;
  private
    { Private-Deklarationen }
  public
    constructor Create;
  end;

  [assembly: RuntimeRequiredAttribute(TypeOf(TWinForm4))]

implementation
   uses microsoft.Win32,system.IO;
{$AUTOBOX ON}

{$REGION 'Vom Windows Form-Designer erzeugter Code'}
/// <summary>
/// Erforderliche Methode zur Unterstützung des Designers --
/// ändern Sie die Methode nicht mit dem Quelltext-Editor
/// </summary>
procedure TWinForm4.InitializeComponent;
begin
  Self.Button1 := System.Windows.Forms.Button.Create;
  Self.TextBox1 := System.Windows.Forms.TextBox.Create;
  Self.SuspendLayout;
  // 
  // Button1
  // 
  Self.Button1.Location := System.Drawing.Point.Create(144, 40);
  Self.Button1.Name := 'Button1';
  Self.Button1.Size := System.Drawing.Size.Create(160, 40);
  Self.Button1.TabIndex := 0;
  Self.Button1.Text := 'Button1';
  Include(Self.Button1.Click, Self.Button1_Click);
  // 
  // TextBox1
  // 
  Self.TextBox1.Location := System.Drawing.Point.Create(16, 160);
  Self.TextBox1.Name := 'TextBox1';
  Self.TextBox1.Size := System.Drawing.Size.Create(488, 20);
  Self.TextBox1.TabIndex := 1;
  Self.TextBox1.Text := 'TextBox1';
  // 
  // TWinForm4
  // 
  Self.AutoScaleBaseSize := System.Drawing.Size.Create(5, 13);
  Self.ClientSize := System.Drawing.Size.Create(528, 436);
  Self.Controls.Add(Self.TextBox1);
  Self.Controls.Add(Self.Button1);
  Self.Name := 'TWinForm4';
  Self.Text := 'WinForm4';
  Self.ResumeLayout(False);
end;
{$ENDREGION}

procedure TWinForm4.Dispose(Disposing: Boolean);
begin
  if Disposing then
  begin
    if Components <> nil then
      Components.Dispose();
  end;
  inherited Dispose(Disposing);
end;

constructor TWinForm4.Create;
begin
  inherited Create;
  //
  // Erforderlich für die Unterstützung des Windows Forms-Designers
  //
  InitializeComponent;
  //
  // TODO: Fügen Sie nach dem Aufruf von InitializeComponent Konstruktorcode hinzu.
  //
end;

procedure TWinForm4.Button1_Click(sender: System.Object; e: System.EventArgs);
 var reader: StreamReader;
    output,s: String;


begin
  output := '';
   reader := &File.OpenText('c:\KB43.125');
  TextBox1.text  := reader.ReadLine();


end;

end.

Inhalt der Textdatei

4#81#KA#4457#KB43#8069#Weiß#Wolfgang#Pürgl2#4322#W indhaag/P.#07264/5033#Weiss.4457@lkvmobil.at#7#NULL#8069#1#NULL#7.0 00#4.320#NULL###

peter

Bernhard Geyer 15. Jan 2006 09:47

Re: Umlaute in Textdatei
 
Die Textdatei bitte als Attachement

peter12 15. Jan 2006 09:49

Re: Umlaute in Textdatei
 
Wie mach ich das eine Textdatei als Attachement zu posten

peter

Bernhard Geyer 15. Jan 2006 09:56

Re: Umlaute in Textdatei
 
Liste der Anhänge anzeigen (Anzahl: 1)
Einfach über den Abschnitt der mit "Attachment hinzufügen" überschrieben ist :gruebel:
Habs gerade selbst gemacht. Sollte einen Entwickler vor keine zu großen Probleme stellen :???:

peter12 15. Jan 2006 10:33

Re: Umlaute in Textdatei
 
Liste der Anhänge anzeigen (Anzahl: 1)
Mußte Endung auf txt ändern

peter

Bernhard Geyer 15. Jan 2006 13:33

Re: Umlaute in Textdatei
 
Könnte das jemand mal Testen? Hab auf dem aktuellen PC nur D6/7.

peter12 15. Jan 2006 14:55

Re: Umlaute in Textdatei
 
Habe weiter Versuch unternommen wenn ich die Datei mit delphi net und
writer.WriteLine(s); speichere

Stehen die Umlaute und ß mit anden Zeichen in der Datei
Weiß >>>> weiß

Ist es nicht möglich eine nicht mit StreamWriter erzeugte Datei zu öffnen.

peter

Bernhard Geyer 15. Jan 2006 20:36

Re: Umlaute in Textdatei
 
Zitat:

Zitat von peter12
Habe weiter Versuch unternommen wenn ich die Datei mit delphi net und
writer.WriteLine(s); speichere

Stehen die Umlaute und ß mit anden Zeichen in der Datei
Weiß >>>> weiß

Ist es nicht möglich eine nicht mit StreamWriter erzeugte Datei zu öffnen.

peter

Die Datei wird UTF8-Codiert gespeichert. Das wird vermutlich auch dein Problem sein das der StreamReader versucht die Datei UTF8-Codiert zu laden und damit fehlschlägt. Schau mal in den Properties od du etwas mit Coding findest.

Und ich wunder mich wieso das es hier keine (funktioniertende) Automatische erkennung gibt. Notepad kann das seit W2K (oder wars NT) automatisch erkennen ob eine Datei ANSI oder UTF8-Codiert ist (am BOM). Aber das man bei Streamreader/writer defaultmäßig UTF8 annimmt ist schon sehr "naheliegend"


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:19 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