Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   memo lädt datei nicht richtig (https://www.delphipraxis.net/37793-memo-laedt-datei-nicht-richtig.html)

IngoD7 10. Jan 2005 18:56

Re: memo lädt datei nicht richtig
 
Zitat:

Zitat von tester008
in der datei stehen nur sonderzeichen und sie ist wie eine normale textdatei gespeichert

Das widerspricht sich irgendwie. Es kommt immer darauf an, wie beim Abspeichern und beim Einlesen mit den Steuerzeichen ASCII 10 und 13 umgegangen wird. Die könnten als Einzelzeichen und/oder in Kombination miteinander als Zeilenende angesehen worden sein. Man weiß also nie, ob man nach speichern und laden dieselben Steuerzeichen wiederbekommen hat.

Gleiches gilt für ASCII 8, welches als "Zeichen löschen" interpretiert werden und damit völlig verschwinden könnte.

Also: Textdatei und Memo sind hierfür schonmal ganz schlecht.

tester008 10. Jan 2005 18:57

Re: memo lädt datei nicht richtig
 
funtzt auch nicht...
das komisch an der ganzen sache ist das das memo wirklich nur dieses zeichen
ausläßt und den rest weiter an nimt


@ingo was sollte ich dann nehmen?

IngoD7 10. Jan 2005 19:21

Re: memo lädt datei nicht richtig
 
Zitat:

Zitat von tester008
@ingo was sollte ich dann nehmen?

Gute Frage, nächste Frage ... Habe mich mit sowas noch nicht beschäftigt.
Du könntest die Datei als "File of byte" öffnen (Befehle AssignFile, Reset, CloseFile und dergl.) und Byte für Byte einlesen und irgendwo speichern.

Oder ein TFileStream benutzen.

Siehe jeweils Online-Hilfe.

tester008 11. Jan 2005 18:14

Re: memo lädt datei nicht richtig
 
ich glaube nicht das das hilft da es ja als ein zeilenumbruch erkannt wird aber warum passiert das nciht beim einfügen? kennt jemand eine komponente für eine anderes memo oderso womit das vieleicht geht

IngoD7 11. Jan 2005 19:33

Re: memo lädt datei nicht richtig
 
Zitat:

Zitat von tester008
ich glaube nicht das das hilft da es ja als ein zeilenumbruch erkannt wird

Hä? :shock:
Bei dem, was ich meinte, gibt es keine Zeilenumbrüche. Da gibt es nur Bytes mit jeweils einem Wert von 0 - 255.

Wenn deine einzulesende Datei allerdings tatsächlich und beabsichtigt Zeilenumbrüche enthält und die Datei, wie du geschrieben hast, ansonsten nur Sonderzeichen enthält, dann würde mich mal wirklich interessieren, wer die womit und zu welchem Zweck genau abgespeichert hat. :roll:

tester008 11. Jan 2005 20:47

Re: memo lädt datei nicht richtig
 
die datei enthält keinen zeilenumbruch ich versuchs gleich aber kann es mir nicht vorstellen lädt der die denn dann so das im memo nu die hex werte stehen oder wie?

IngoD7 12. Jan 2005 11:33

Re: memo lädt datei nicht richtig
 
Wir drehen uns so langsam im Kreis. :(

Meine Hinweise auf "file of byte" und "TFileStream" haben nichts mit einem Memo zu tun. Lies bitte, wie empfohlen die Online-Hilfe dazu, um einen Überblick zu bekommen, was das ist.

Eine Entscheidung, was denn nun genau in der Datei steht, die angeblich im Textformat abgespeichert ist, wäre auch langsam nicht schlecht. Aus jedem Posting von dir lässt sich diesbzgl. etwas anderes heraus interpretieren.

Eine Textdatei ist in der Regel nur für Text zu gebrauchen. Basta. Warum du also angeblich eine Textdatei, vollgestopft mit Sonder- und/oder Steuerzeichen hast, wissen die Götter. Auch ein Memo ist normalerweise nur für Texte sinnvoll. Texte bestehen aus Zeilen und Zeilen werden in der Regel durch #13#10 abgeschlossen. Deshalb "achtet" ein Memo auf diese Zeichen, um daraus einen Zeilenumbruch zu generieren. Ist das geschehen, so sind die Zeichen damit "verbraucht" und tauchen nicht mehr auf. Deinem Wortlaut nach sind sie dann "ausgelassen". Das oder ähnliches kann auch mit (Sonder- oder Steuer-)Zeichen passieren, die in einer Textdatei normalerweise gar nichts zu suchen haben. Letztlich ist genau das ja auch anscheinend passiert.

Wenn es kein echter Text ist, dann ist die Benutzung einer Textdatei und eines Memos einfach schlecht - egal ob, wie du nun geschrieben hast, dort keine Zeilenumbrüche drin sind oder doch. Irgendetwas ist da drin, was ein Memo nicht mag. Sonst gäbe es diesen Thread nicht.

Kennst du den genauen Aufbau der Datei nicht, oder hast du es bisher nur versäumt, ihn hier zu beschreiben? Man sollte den Aufbau der Dinge, die man in ein Programm einlesen möchte, schon wissen. Daraus ergibt sich auch die Art und Weise, wie die Dinge dann eingelesen werden sollten.

Uff ... ich habe fertig. :)

tester008 12. Jan 2005 16:09

Re: memo lädt datei nicht richtig
 
doch der inhalt in der datei ist eine xor verschlüsslung was ja auch wunderbar
klapt beim speichern bloß beim laden halt nicht ich glaub das ich die verschlüssungsart
anders wählen sollte

IngoD7 12. Jan 2005 16:32

Re: memo lädt datei nicht richtig
 
Zitat:

Zitat von tester008
doch der inhalt in der datei ist eine xor verschlüsslung was ja auch wunderbar
klapt beim speichern bloß beim laden halt nicht ich glaub das ich die verschlüssungsart
anders wählen sollte

Liest du meine Postings eigentlich? :wall:

Ein letzter Versuch:

Wenn nach deiner Verschlüsselung ein solcher Zahlenstrom entsteht ...

45 230 13 10 25 46

... und du dieses als Textdatei speicherst, so hast du auf der Festplatte
ungefähr sowas stehen (ist jetzt vereinfacht, gilt nur dem Verständnis):

45 230 13 10 25 46 13 10

Wenn du das nun in ein Memo einliest, dann steht in deinem Memo anschließend:

45 230
25 46

Von 6 Werten findest du auf einmal nur noch 4 wieder. Warum? Weil bestimmte (Steuerzeichen-)Werte in einem Wertestrom das Einlesen in ein (Text-)Memo nicht überleben!

Das kann dir jederzeit, bei jeglicher Art von Verschlüsselung passieren. Du darfst das weder direkt als Text abspeichern, noch als Text einlesen. Ein Memo liest Text ein, es erwartet Text, also kannst du ein Memo nicht nehmen!

Ich wiederhole meine Tipps jetzt nicht. Sie stehen in meinen vorherigen Postings. Befolge sie oder lass es bleiben.

tester008 12. Jan 2005 16:36

Re: memo lädt datei nicht richtig
 
es funktioniert mit assingfile thx @ingo

jetzt hab ich bloß 2 zeichen zu viel aber ich denke das liegt daran das ich nicht mit assingifle speichere


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:35 Uhr.
Seite 2 von 3     12 3      

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