MemoWrit...

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
adrian
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 265
Registriert: Mo, 08. Mai 2006 8:58
Wohnort: Aadorf TG
Danksagung erhalten: 1 Mal
Kontaktdaten:

MemoWrit...

Beitrag von adrian »

Hallo zusammen

Ich habe eine Variable mit einem XML-Script als Inhalt. Damit ich diese mit XMLDocOpenFile() laden kann muss ich Sie ja zuerst in ein File speichern, oder gibt es eine Möglichkeit diese Variable direkt auszuwerten?

Nun auf jeden Fall speichere ich diese nun mit Memowrit("test.xml", cVariable)

Der Schluss der Datei sieht im Original wie im Bild 1 aus doch in der Datei test.xml sieht der Schluss der Datei wie im Bild 2 aus, daher ist die XML-Datei natürlich nicht korrekt.
Screenshot 2021-12-09 220904.jpg
Screenshot 2021-12-09 220904.jpg (7.2 KiB) 3511 mal betrachtet
Screenshot 2021-12-09 221237.jpg
Screenshot 2021-12-09 221237.jpg (6.25 KiB) 3511 mal betrachtet
Eventuell hat da jemand eine Idee, oder kennt den Grund.

Besten Dank

Adrian
es Grüessli

Adrian
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: MemoWrit...

Beitrag von AUGE_OHR »

hi,

das letzte Zeichen ist Ctrl-Z was MemoWrit() schreibt.
IHMO sollte das nichts ausmachen
gruss by OHR
Jimmy
Benutzeravatar
adrian
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 265
Registriert: Mo, 08. Mai 2006 8:58
Wohnort: Aadorf TG
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: MemoWrit...

Beitrag von adrian »

OK, nun habe ich noch ein Leerzeichen angefügt, so wird das letzte Zeichen nicht mehr gelöscht. Doch das Problem ist aber, dass durch das Steuerzeichen die XML-Struktur zerstört wird, das File kann nicht mehr im Browse etc. betrachtet werden und auch der Befehl "XMLDocOpenFile(sXMLFile)" bringt nur noch ein 0 zurück.

Oder gibt es eine andere Möglichkeit eine Variable zu schreiben, daher ohne Steuerzeichen?

Beim Befehl "XMLDocOpenFile()" kann ich ja nur ein File angeben und keine Variable.

Adrian
es Grüessli

Adrian
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: MemoWrit...

Beitrag von AUGE_OHR »

hi,

Code: Alles auswählen

#include "Fileio.ch" 
PROCEDURE Main(cFile,cText) 
LOCAL nHandle := FCreate( cFile, FC_NORMAL ) 
      IF nHandle == -1 
         ? "Fehler beim Erzeugen der Datei:", FError() 
      ELSE 
         FWrite( nHandle, cText ) 
         FClose( nHandle ) 
      ENDIF 
RETURN
gruss by OHR
Jimmy
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: MemoWrit...

Beitrag von Wolfgang Ciriack »

StrFile(cText, cFile) aus den ToolsIII.
Viele Grüße
Wolfgang
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: MemoWrit...

Beitrag von Jan »

Adrian,

wie Jimmy schon schrieb hängt MemoWrit() ein Steuerzeichen an. Das stört XML-Viewer, da kämpfe ich auch regelmäßig mit, weil ich MemoWrit() manchmal im Befehlsfenster der Workbench nutze für Kontrollzwecke während des Dbuggens. Nimm statt MemoWrit() FWrite(), dann passiert dir das nicht. SInd zwar ein paar Zeilen Code mehr, aber das Problem ist weg.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
adrian
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 265
Registriert: Mo, 08. Mai 2006 8:58
Wohnort: Aadorf TG
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: MemoWrit...

Beitrag von adrian »

Ihr seit cool

Schöne Festtage und besten Dank für alle Beiträge

Adrian
es Grüessli

Adrian
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: MemoWrit...

Beitrag von Tom »

StrFile() kann das auch in einer einzigen Zeile. Ohne Steuerzeichen.
Herzlich,
Tom
Benutzeravatar
adrian
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 265
Registriert: Mo, 08. Mai 2006 8:58
Wohnort: Aadorf TG
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: MemoWrit...

Beitrag von adrian »

Warum kompliziert wenn es doch so einfach ist, läuft alles wunderbar, besten Dank nochmals.

Ich werde Euch als Gegenleistung noch einen Beitrag im Bereich REST erstellen, da hatte ich Hilfe von Alaska Direkt, da dies so nicht funktionierte.

Infos folgen

Adrian
es Grüessli

Adrian
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: MemoWrit...

Beitrag von brandelh »

Alaska selbst warnt direkt vor der Verwendung von Memowrit(), bei Binärdaten, da es der Zeichenkonvertierung unterliegt.
Bei echtem bzw. einfachem Text stört nur das folgende Steuerzeichen, aber es könnte auch sein, dass bei einer XML Datei Zeichen geändert werden die nicht geändert werden dürfen.

StrFile() war ja aus den Tools, bei XBase++ ist es mittlerweile enthalten, aber in der Wissensdatenbank gibt es auch eine Übersetzung mit fopen etc. einfacher Quellcode, absolut sicher.
Gruß
Hubert
Antworten