AGB  ·  Datenschutz  ·  Impressum  







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

Unterscheidung binär/ASCII

Ein Thema von Chewie · begonnen am 9. Jul 2003 · letzter Beitrag vom 10. Jul 2003
Antwort Antwort
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#1

Unterscheidung binär/ASCII

  Alt 9. Jul 2003, 16:52
Nach welchen Kritieren würdet ihr entscheiden, ob es sich bei einem Datenblock um binäre Daten oder um Text-Daten handelt?

Meine Idee ist das folgende:

if chr in [$0A,$0D,$20..$FF] then //... Ist das ausreichend oder gibts da bessere Unterscheidungskritierien?
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Unterscheidung binär/ASCII

  Alt 9. Jul 2003, 17:56
Moin Chewie,

Z.B. betrachtet Visual Source Save (in Standardeinstellung), alle Dateien, die keine binären Nullen enthalten als Textdateien, bzw. alle die binäre Nullen enthalten, als Binärdateien.
Da Unicode Textdateien aber auch binäre Nullen enthalten (können), lässt sich das abschalten, und man muss selber dafür Sorge tragen, dass die Dateien richtig sind.

Alle Zeichen unterhalb $1F werden als Steuerzeichen angesehen (im Prinzip auch $00), so dass Du wohl nur

Delphi-Quellcode:
if chr in [$01..$FF] then

// oder

if chr <> #00 then
wirst nehmen können.

Was leicht in einem Text vorkommen kann (hängt auch davon ab woher dieser stammt) wären $07 (Bell), $09 (horizontal Tab), $11 (vertikal Tab), vielleicht auch $12 (Form Feed).
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Unterscheidung binär/ASCII

  Alt 10. Jul 2003, 07:19
Hallo,
bei den Schweizern gibt es ein stückchen Code dazu...
...überprüfen, ob eine Datei îm ASCII Format ist?
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Unterscheidung binär/ASCII

  Alt 10. Jul 2003, 20:56
Ich habs mir mal angeschaut. So ähnlich hätt ich es auch gemacht, prüfen, ob größer/gleich 32 oder gleich 9, 10, 13. Aber was macht denn eigentlich die 26 genau? Als Erklärung heißt es "substitute", aber "substitute" für was? Ich hab nämlich noch nie Zeichen 26 in einer Textdatei gesehen.

Ach ja, das hätte ja eigentlich in einen neuen Thread gehöt, oder?
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Unterscheidung binär/ASCII

  Alt 10. Jul 2003, 21:20
Hallo Chewie,
habe mal nach "ASCII 26" gegoogelt und dabei folgendes rausgefunden:
"Read File containing EOF (AscII 26) chars into StringList" (Link)
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Unterscheidung binär/ASCII

  Alt 10. Jul 2003, 21:34
Ach so! SUB ist gleich EOF. Gut zu wissen. Danke, jetzt bin ich glücklich
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Unterscheidung binär/ASCII Leicht OT

  Alt 10. Jul 2003, 22:52
Moin Chewie,

Zitat von Chewie:
Ich hab nämlich noch nie Zeichen 26 in einer Textdatei gesehen.
Da das Zeichen zu den "nicht druckbaren" also Steuerzeichen gehört, ist es im eigentlichen Sinne ja auch nicht zu sehen.

In der Konsole kannst Du es Dir z.B. ansehen.

Du müsstest da nur

echo STRG-P STRG-Z

, dann Enter eingeben.

STRG-P = Print

Damit konnte man früher den Protokolldruck, als Ersatz oder Ergänzung für den Bildschirm, ein- und ausschalten.

Alle Steuerzeichen 1 - 26, kannst Du in der Konsole mit STRG+A bis STRG-Z eingeben.
Wenn Du z.B. mal eine Datei mittels Copy CON: erstellen willst (musst) kannst Du die Eingabe mit STRG-Z beenden.

Womit wir eigentlich wieder am Anfang wären, denn auch die Zeichen < 32 könnten Bestandteil einer Textdatei sein, bei Unicode auch die 0.

Geht es jetzt um bestimmte Dateien, oder allgemein.
Z.B. ist bei C festgelegt, welche Zeichen in der Datei vorkommen können, so dass eine gezieltere Prüfung möglich wäre.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Unterscheidung binär/ASCII

  Alt 10. Jul 2003, 22:59
Das Problem ist ja, dass die Daten gar nicht in einer Datei vorkommen, sondern einfach die "Nutzlast" von IP-Paketen darstellen.

Ich bastele ja gerade an einem nonVCL-IP-Sniffer, der mir die eingehenden IP-Pakete anzeigt, und nach Entfernen des IP-Headers und des Headers des höheren Transportprotokolls bleiben ja Daten übrig (außer bei z.B. TCP-Acknowledgememts). Und um diese Daten zu sehen, kann ich ja schlecht ein EDIT nehmen, es kann sich ja um binäre Daten handeln. Deswegen hab ich ja mal nach einem HexView-Control gefragt und hab mir das Dingens dann ja selber gebastelt.
Jetzt wollte ich da drinnen halt noch einbauen, dass er bei Textdaten die Daten in einem EDIT anzeigt. Aber ich werd wohl noch ne Option einbauen, die Ansicht zu wechseln, da ist eine Fehlinterpretation der Daten nicht so tragisch.

Aber danke für die Infos!
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  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:21 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