BlackBoard » Design, Programmierung & Entwicklung » Programmieren » DOS-Programmierung: ASCII-Wirrwarr » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen DOS-Programmierung: ASCII-Wirrwarr
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
COCYHOK COCYHOK ist männlich
Verunsicherungsmakler


images/avatars/avatar-2037.png

Dabei seit: 04.10.2003
Beiträge: 1.079
Herkunft: CCCP

DOS-Programmierung: ASCII-Wirrwarr       Zum Anfang der Seite springen

Hab kürzlich mal n Proggy in TP geschrieben (Compiler für DOS-Programme). Um eine leere Fläche irgendwie auszufüllen, bediene ich mich gerne der ASCII-Zeichen 219 bis 223. Mit diesen lasse ich zufällig die Fläche ausfüllen. Wenn ich das Programm innerhalb von TP starte, gibts keine Probs (meistens). Wenn ich aber unter Win98 die EXE mit dem Explorer direkt starte, erscheinen die Zeichen 221 und 222 wie die ANSI-Zeichen ¦ und Ì. Was kann man da machen? Warum werden 219, 220 und 223 als ASCII dargestellt und nur 221 und 222 als ANSI (was ja faktisch gar nicht geht)?

__________________
Es ist eine Frage, ob wir nicht, wenn wir einen Mörder rädern, grade in den Fehler des Kindes verfallen, das den Stuhl schlägt, an dem es sich stößt.
Georg Christoph Lichtenberg, 18. Jahrhundert
12.10.2003 20:25 COCYHOK ist offline E-Mail an COCYHOK senden Homepage von COCYHOK Beiträge von COCYHOK suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

Der ASCII Zeichensatz legt lediglich die ersten 128 Zeichen fest...

Devil

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de
12.10.2003 20:46 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
COCYHOK COCYHOK ist männlich
Verunsicherungsmakler


images/avatars/avatar-2037.png

Dabei seit: 04.10.2003
Beiträge: 1.079
Herkunft: CCCP

Themenstarter Thema begonnen von COCYHOK
      Zum Anfang der Seite springen

FALSCH!
Ich weiß zwar nicht genau, wie es ist, aber entweder sind die ersten 128 Zeichen gleich und die zweiten 128 Zeichen verschieden oder es sind alle verschieden. Aber die zweiten 128 (erweiterten) Zeichen sind auf jedenfall zwischen ANSI und ASCII verschieden! Kannst ja mal ne Stichprobe machen! Öffne die DOS-Box (unter WinXPlosion wird vieleicht sogar in der DOS-Box der ANSI-Zeichensatz verwendet - wäre anzunehmen) und gib per Alt ein Zeichen von 129 bis 255 ein. Öffne dann Notepad und gib den gleichen Code ein. Die Zeichen werden verschieden sein (wenn du nicht zufällig gerade eins erwischt hast, das gleich ist)! Ein gutes Beispiel sind die Rahmenzeichen. Hast du jemals in einer Windowsanwendung diese Zeichen gesehen?

__________________
Es ist eine Frage, ob wir nicht, wenn wir einen Mörder rädern, grade in den Fehler des Kindes verfallen, das den Stuhl schlägt, an dem es sich stößt.
Georg Christoph Lichtenberg, 18. Jahrhundert
12.10.2003 21:43 COCYHOK ist offline E-Mail an COCYHOK senden Homepage von COCYHOK Beiträge von COCYHOK suchen
CDW CDW ist männlich
eine Simulation


Dabei seit: 12.10.2002
Beiträge: 1.329
Herkunft: CreateRemoteThread

      Zum Anfang der Seite springen

nix falsch Augenzwinkern wenn du genau darauf achtest, dann siehst du, dass die ersten 128 gleich sind, denn die buchstaben und ziffern+sonderzeichen haben alle denselben wert
hier ist ein VBS Script, welches dir die zeichen zusammen mit dem Wert in die "asciicode.txt" ausgibt (einfach in eine Textdatei reinkopieren und die Endung VBS verpassen):
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
set fso = wscript.createobject("scripting.filesystemobject")
SET Shell=CreateObject("Wscript.Shell")
ausgabe="asciicode.txt"

Dim Zahl1, ergebniss
On Error Resume Next
init
schreibe
starte

Function init
  If fso.fileexists(ausgabe) Then Ask=MsgBox("Existiert bereits, überschreiben?", vbyesno + vbquestion,"Nochmal erstellen? Ohne Sinn ...")
  If Ask=vbNo Then wscript.quit
End Function


Function schreibe
  SET out=fso.CreateTextFile(ausgabe)

   For i=0 to 255
    out.writeline(Zahl1 &"  "&Chr(Zahl1))
    Zahl1=Zahl1+1
Next

End Function

Function starte
  Shell.run(ausgabe)
  If Err.Number >0 Then Shell.popup "Unerwarterter Fehler ist augetreten!"&vbcrlf&"Wahrscheinlich ist der Ordner/Datei schreibgeschützt..."&vbcrlf&"oder Sie haben keine Schreibberechtigung oder"&vbcrlf&"der Ilja sitzt vor diesem PC...oder..."&vbcrlf&"Meinen Sie ich habe an diesem Abend nichts "&vbcrlf&"besseres zutun als für jeden erdenklichen Fehler,"&vbcrlf&"den Sie verursachen könnten, ne Meldung zu machen?",,"Schitt, ein Fehler...",vbokonly+vbcritical+vbsystemmodal
  If err.number<1 Then MsgBox "Keine Fehler aufgetreten, die Datei wurde neu erstellt!",vbokonly+vbinformation,"Ascii Code  ok..."
End Function

Notepad hat nur keine Zeichendarstellung bis 32, weil davor auch die ganzen (unter Win als Steuerzeichen) genutzten zeichen kommen...

siehe noch mal Devil's
Zitat:

Der ASCII Zeichensatz legt lediglich die ersten 128 Zeichen fest...

nicht ANSI !

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von CDW: 12.10.2003 21:57.

12.10.2003 21:53 CDW ist offline E-Mail an CDW senden Homepage von CDW Beiträge von CDW suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

Zitat:
Original von COCYHOK
FALSCH!


Nein, RICHTIG.

Devil

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de
12.10.2003 22:13 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
COCYHOK COCYHOK ist männlich
Verunsicherungsmakler


images/avatars/avatar-2037.png

Dabei seit: 04.10.2003
Beiträge: 1.079
Herkunft: CCCP

Themenstarter Thema begonnen von COCYHOK
      Zum Anfang der Seite springen

Warte mal
1.: Sowohl der ASCII(DOS)-Zeichensatz, als auch der ANSI(Win)-Zeichensatz besteht aus 256 Zeichen. Die Zeichensätze werden jeweils unterteilt in den Standard-Zeichensatz (0 bis 128) und den erweiterten Zeichensatz (129 bis 255). Ich sage, Die Zeichen 129 bis 255 sind AUF JEDEN FALL (siehe z.B. Zeichen #200) zwischen ANSI und ASCII verschieden!! Ich glaube, ihr redet am Thema vorbei, denn Folgendes:
2.: Der Einfachheit halber bleiben wir beim Zeichen 200: Wenn du die Konsole öffnest und Alt-200 eingibst, siehst du ein Rahmenzeichen; Gibst du diese Tastenkombination aber in einem Win-Programm ein, erscheint ein +! Das heißt erstmal, dass ASCII129-255 <> ANSI129-255, gell? Nun zu meinem Problem: Ich schreibe also in den Quelltext, dass im Programm später an irgendeiner Stelle das Zeichen mit dem Code 200 erscheinen soll. Da sowohl der Compiler als auch das fertige Programm DOS-Programme sind, steht nur der ASCII-Code zur Verfügung und es ist faktisch unmöglich, dass jemals ein Zeichen aus dem erweiterten ANSI-Code erscheint, auch gell? ABER GENAU DAS IST IN MEINEM PROGRAMM DER FALL: Manchmal erscheint an dieser Stelle ein Rahmenzeichen, manchmal ein +. Das geht bitteschön wie?

Nochwas: Was ist das für ne Sprache, dieser Code da oben?

__________________
Es ist eine Frage, ob wir nicht, wenn wir einen Mörder rädern, grade in den Fehler des Kindes verfallen, das den Stuhl schlägt, an dem es sich stößt.
Georg Christoph Lichtenberg, 18. Jahrhundert

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von COCYHOK: 13.10.2003 23:20.

13.10.2003 23:17 COCYHOK ist offline E-Mail an COCYHOK senden Homepage von COCYHOK Beiträge von COCYHOK suchen
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
BlackBoard » Design, Programmierung & Entwicklung » Programmieren » DOS-Programmierung: ASCII-Wirrwarr

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH