AGB  ·  Datenschutz  ·  Impressum  







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

Konsolenanwendung Zeichensatz

Ein Thema von Martin K · begonnen am 14. Mai 2006 · letzter Beitrag vom 22. Mär 2009
Antwort Antwort
Seite 2 von 3     12 3      
Olli
(Gast)

n/a Beiträge
 
#11

Re: Konsolenanwendung Zeichensatz

  Alt 14. Mai 2006, 15:45
Zitat von Martin K:
Aber ich würde es gerne mit der anderen Methode machen, dass die Strings im Quellcode direkt im DOS-Zeichensatz formatiert sind.
Kein Problem. Öffne ein DOS-Fenster, gib ein 'EDIT' und öffne aus dem DOS-Editor heraus deine Datei. Nun kannst du deinen Delphi-Source mit dem DOS-Editor bearbeiten.

Etwas unpraktikabel vielleicht, aber allemal eine Variante.
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Konsolenanwendung Zeichensatz

  Alt 14. Mai 2006, 15:49
Hm, ja das ist eine Möglichkeit, finde ich aber nicht sehr gut.

Ich hätte es gerne so:
Zitat von Martin K:
Kann man denn nicht allgemein, irgendwo am Anfang bei der Deklaration den Zeichensatz eines Strings festlegen?
Weil ich auch noch andere Units eingebunden habe, die auch Strings mit Umlauten in Funktionen/Prozeduren zurückliefern.
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#13

Re: Konsolenanwendung Zeichensatz

  Alt 14. Mai 2006, 15:54
Zitat von Martin K:
Kann man denn nicht allgemein, irgendwo am Anfang bei der Deklaration den Zeichensatz eines Strings festlegen?
Nein. Und die benutzte Codeseite entspricht den Einstellungen deines Systems (oder deines Benutzers, je nachdem).
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: Konsolenanwendung Zeichensatz

  Alt 14. Mai 2006, 16:01
Zitat von Olli:
Zitat von Martin K:
Kann man denn nicht allgemein, irgendwo am Anfang bei der Deklaration den Zeichensatz eines Strings festlegen?
Nein. Und die benutzte Codeseite entspricht den Einstellungen deines Systems (oder deines Benutzers, je nachdem).
Kann man die ändern?
(Also in Delphi, für ein Programm)
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Frickeldrecktuxer_TM
(Gast)

n/a Beiträge
 
#15

Re: Konsolenanwendung Zeichensatz

  Alt 14. Mai 2006, 16:11
Zitat von Martin K:
Kann man die ändern?
(Also in Delphi, für ein Programm)
Laut http://www.uwe-sieber.de/codepage_e.html mit CHCP. Eine passende Codepage sollte laut Google 1252 sein, sofern die in cmd.exe verfügbar ist. Falls nicht, weiß ich auch nicht, welche CP du da am besten nimmst.
Aber ist es denn wirklich so schlimm alle Vorkommen von WriteLN() durch CustomWriteLN() zu ersetzen und dann einfach folgende Funktion zu schreiben?
Delphi-Quellcode:
procedure CustomWriteLN(S: String);
var
  buf: String;
begin
  SetLength(buf, Length(S));
  CharToOEM(PChar(S), PChar(buf));
  WriteLN(buf);
end;
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: Konsolenanwendung Zeichensatz

  Alt 14. Mai 2006, 16:12
So, hab mir jetzt so was gebastelt:
Delphi-Quellcode:
procedure Write(const src: string);
var dst: string;
begin
  if src='then
    WriteLn('')
  else
  begin
    SetLength(dst,Length(src));
    CharToOEM(PChar(src),PChar(dst));
    WriteLn(dst);
  end;
end;
Warum funzt das eigentlich net bei leeren Strings ?

Bei leeren Strings ist mein Programm immer abgestürzt, deshalb die IF-Abfrage.
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#17

Re: Konsolenanwendung Zeichensatz

  Alt 14. Mai 2006, 19:03
ach ja... das Problem mit dem sofortigen schließen... Könnte es sein, dass nach dem Writeln einfach gleich das finale "end." kommt? Das macht nämlich genau das, was man von ihm erwartet.

Die Lösung verrat ich natürlich auch gleich: Ein einfaches "ReadLn" kehrt erst zurück, wenn du die Enter-Taste betätigst.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#18

Re: Konsolenanwendung Zeichensatz

  Alt 14. Mai 2006, 21:14
Hallo,
Zitat von Martin K:
Warum funzt das eigentlich net bei leeren Strings ?

Bei leeren Strings ist mein Programm immer abgestürzt, deshalb die IF-Abfrage.
Weil der String "dst" mindestens ein Zeichen lang sein muss, sonst mag CharToOEM nicht. Steht leider auch nicht im PSDK.

Gruß
xaromz
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#19

Re: Konsolenanwendung Zeichensatz

  Alt 19. Mär 2009, 17:25
ich möchte in meinem Programm möglichst die Zeichen ╣║╗╝╚╔╩╦╠═╬ benutzen.
Da hilft aber auch CharToOem() nicht weiter.
Aber es scheint irgendwie möglich zu sein.
Weiß jemand wie?
Marvin
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#20

Re: Konsolenanwendung Zeichensatz

  Alt 19. Mär 2009, 19:16
Zitat von Frickeldrecktuxer_TM:
die ASCII-Zeichen sind identisch mit den 128 ersten Unicode-Zeichen
Nicht direkt. Bei UTF-16 und UCS-2 ist jedes Unicodezeichen in (mindestens) zwei Bytes kodiert, bei UCS-4 und UTF-32 sogar in 4 - auch die Zeichen, die den ASCII Zeichen entsprechen, belegen also mehrere Bytes. Bei UTF-8 stimmt gibt es die Übereinstimmung mit ASCII bei der Kodierung der ersten 128 Zeichen. Weitere Unicode Zeichen benötigen in UTF-8 bis zu vier Bytes ...
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 13:53 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