Delphi-PRAXiS

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)

tester008 10. Jan 2005 17:31


memo lädt datei nicht richtig
 
ich hab das problem wenn ich eine datei ins memo laden will fehlt ein zeichen und staddessen hab ich einen zeilenumbruch

das zeichen ist ein quader
komischer weise wenn ich das aus der datei kopiere und einfüge geht es
was mach ich da falsch???

Delphi-Quellcode:
flatmemo1.lines.loadfromfile(OpenDialog1.FileName);
oder ist sowas gar nicht mit einem memo möglich?

Aenogym 10. Jan 2005 17:32

Re: memo lädt datei nicht richtig
 
dieser quader dautet darauf hin, dass es das steuerzeichen für den zeilenumbruch sien könnte.
also nichts verwunderliches. und das wegen dem einfügen: vielleicht wird der eingefügte text dann irgendwie falsch formatiert....

Aenogym

tester008 10. Jan 2005 17:39

Re: memo lädt datei nicht richtig
 
gibt es den eine möglichkeit die datei woanders fehlerfrei zu laden???

Dax 10. Jan 2005 17:42

Re: memo lädt datei nicht richtig
 
Entweder Delphi-Referenz durchsuchenTRichEdit(zu finden in der Win32-Page der Komponentenpalette) oder ein SynEdit. Ich plädiere für das Richedit, weil es schon bei Delphi dabei und eine Windows-Komponente ist, dürfte daher ziemlich schnell sein.

PierreB 10. Jan 2005 17:43

Re: memo lädt datei nicht richtig
 
Versuchs doch mal mit TRichEdit statt TMemo.
Vielleicht gehts damit.

IngoD7 10. Jan 2005 17:45

Re: memo lädt datei nicht richtig
 
Zitat:

Zitat von tester008
gibt es den eine möglichkeit die datei woanders fehlerfrei zu laden???

Gegenfrage: Ist die Datei eine reine Textdatei? Wohl eher nicht (wegen des "Quaders"). Was soll sie dann überhaupt in einem Memo?
Um es kurz zu machen: Was steht in der Datei schönes drin?

tester008 10. Jan 2005 18:04

Re: memo lädt datei nicht richtig
 
in der datei stehen nur sonderzeichen und sie ist wie eine normale textdatei gespeichert es soll halt ein verschlüssunlngs tool für nachrichten werden

mr47 10. Jan 2005 18:42

Re: memo lädt datei nicht richtig
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier hab ich ne kleine Unit, die du einbinden kannst. Und dann mit den Befehlen

Delphi-Quellcode:
FileToMemo(Textdatei,Memo);
und
Delphi-Quellcode:
MemoToFile(memo,textdatei);
kannst du dann korreckt laden und Speichern (Das laden und Speichern erledigt die Unit);

Wichtig!: Das ist nicht professionell deshalb: in die Letzte Zeile der Textdatei
Code:
_end;
schreiben.(Wird nacher nicht angezeigt) Sonst hast du ein paar überflüssige Zeilen unten dran :mrgreen:

Und falls die Txt-Datei mehr als 999999 Zeilen hat bitte in der Unit die For-Schleife ändern :mrgreen:

So und nun fallt über mich her von wegen: unprofessionell :mrgreen:

tester008 10. Jan 2005 18:52

Re: memo lädt datei nicht richtig
 
also mit dem richedit gehts nich und einem normalen editfeld auch nicht

werds mal mit der unit probieren

mr47 10. Jan 2005 18:55

Re: memo lädt datei nicht richtig
 
Bei Fehlern oder Fragen einfach melden!

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

IngoD7 12. Jan 2005 16:49

Re: memo lädt datei nicht richtig
 
Zitat:

Zitat von tester008
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

Das ist gut möglich.

tester008 13. Jan 2005 17:30

Re: memo lädt datei nicht richtig
 
hat das memo eine zeichen begrenzung oderso? kann das vieleicht sein ich in delphi keine eingegeben aber irgendwie sieht das so aus als hat das memo eine begrenzung

IngoD7 14. Jan 2005 08:59

Re: memo lädt datei nicht richtig
 
Zitat:

Zitat von tester008
hat das memo eine zeichen begrenzung oderso?

Spätestens dein Speicher begrenzt das. Aber ich weiß das nicht genau.

Zitat:

Zitat von tester008
kann das vieleicht sein ich in delphi keine eingegeben aber irgendwie sieht das so aus als hat das memo eine begrenzung

Waren ab diesem Moment die Satzzeichen auf deiner Tastatur kaputt? (Obwohl, selbst mit Punkt und Komma würde ich das nicht verstehen ....)

Wenn ich so antworten würde, wie du fragst, wärst du noch keinen Millimeter weiter.

Ist das ein neues Problem? Dann mache bitte einen neuen Thread auf.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz