aus einem String Leezeichen auschneiden

14. Oktober 2009 10:31

Hallo zusammen,

Ich versuchen per Report eine Txt-Datei aus einer Tabelle zu generieren.
während des Zeilenumbruch erzeugt navision leerzeichen die leider an dieser Stelle nicht gebraucht sind.

Hier ein Ausschnitt :

Code:
          Datei.WRITE("Projekt.Feld1+ ',');
          Datei.SEEK(Datei.POS - 1);
          Datei.WRITE("Projekt."Feld 2" +',');
          Datei.SEEK(Datei.POS - 1);
          Datei.WRITE(Projekt.Feld 3");
          Datei.SEEK(Datei.POS - 1);   
          ZeilenUmbruch;
          Datei.SEEK(Datei.POS - 1);



Code:
ZeilenUmbruch();
CR := 13;
LF := 10;
CRLF := STRSUBSTNO('%1%2',CR,LF);
Datei.WRITE(CRLF);



Ergebnis siehe bitte angehängte Txt.file

wie lösche ich die Leerzeichen am Ende der zeile?
vielen Dank.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: aus einem String Leezeichen auschneiden

14. Oktober 2009 10:40

Du schreibst ja auch nur die Zeichenfolge '1310' da hin. Ein CRLF besteht aber doch aus zwei Chars: einer 13, einer 10.

Aber das müsste doch mit writetext von selbst gehen.

Re: aus einem String Leezeichen auschneiden

14. Oktober 2009 10:43

Der CR/LF ist schon richtig ausgegeben, da die 13 bzw. 10 einer Char-Variablen zugewiesen wird.

Führe nach dem Datei.SEEK einen Datei.TRUNC aus, um die (Leer)Zeichen hinter deiner Cursorposition abzuschneiden.

Re: aus einem String Leezeichen auschneiden

14. Oktober 2009 10:46

Wäre das nicht einfacher?
Code:
// Sting = Variable vom Typ Text 1024
String := "Projekt.Feld1+ ',' + "Projekt."Feld 2" + ',' +Datei.WRITE(Projekt.Feld 3"
Datei.WRITE(String);


Alle Daten in einem String Sammeln und dann schreiben, der Zeilenumbruch wird dann automatisch eingefügt.
Alternativ, sonst zu deinem Code, versuche es mit Pos-2 (es wurde ja nur ein unsichtbares Zeichen gelöscht!) -->Oder soll das so sein?

**Edit by Mikka**
Ok, ich sehe schon ich bin mal wieder zu langsam :wink:

** Edit2 by Mikka**
McClane hat geschrieben:Du schreibst ja auch nur die Zeichenfolge '1310' da hin. Ein CRLF besteht aber doch aus zwei Chars: einer 13, einer 10.

Wenn die beiden Variablen vom Typ Char sind, müsste es klappen (oder irre ich mich?)!

Re: aus einem String Leezeichen auschneiden

14. Oktober 2009 10:48

Warum schreibst du den Code nicht so:

Code:
Datei.WRITE("Projekt.Feld1"+',');
          Datei.SEEK(Datei.POS - 1);
          Datei.WRITE("Projekt.Feld2"+',');
          Datei.SEEK(Datei.POS - 1);
          Datei.WRITE("Projekt.Feld3");


??

-----------------------------------------
DAMN warum seit ihr so schnell xD

Re: aus einem String Leezeichen auschneiden

14. Oktober 2009 10:49

Cr4cks hat geschrieben:-----------------------------------------
DAMN warum seit ihr so schnell xD


Weil wir schön schreiben :mrgreen:

**Edit by Mikka**
Ich muß es umformulieren:
Wir sind langsammer weil wir schön schreiben :mrgreen:

Re: aus einem String Leezeichen auschneiden

14. Oktober 2009 10:51

mikka hat geschrieben:Wenn die beiden Variablen vom Typ Char sind, müsste es klappen (oder irre ich mich?)!

Stimmt. Ich Hirsch :oops:

Re: aus einem String Leezeichen auschneiden

14. Oktober 2009 10:57

mikka hat geschrieben:Wir sind langsammer weil wir schön schreiben :mrgreen:



Jap so könnte es sein :lol:

-----------------------

EDIT: Meine Frage würde ich dennoch gern beantwortet haben :/

Re: aus einem String Leezeichen auschneiden

14. Oktober 2009 11:16

Timo Lässer hat geschrieben:Der CR/LF ist schon richtig ausgegeben, da die 13 bzw. 10 einer Char-Variablen zugewiesen wird.

Führe nach dem Datei.SEEK einen Datei.TRUNC aus, um die (Leer)Zeichen hinter deiner Cursorposition abzuschneiden.


Datei.TRUNC nach Datei.Seek hat leider nicht viel gebracht.

Alle Daten in einem String Sammeln und dann schreiben, der Zeilenumbruch wird dann automatisch eingefügt.
Alternativ, sonst zu deinem Code, versuche es mit Pos-2 (es wurde ja nur ein unsichtbares Zeichen gelöscht!) -->Oder soll das so sein?


Zeilenumbruch konnte nicht erzeugt werden wenn ich den String in einer Zeile schreibe.
mit Pos-2 hätte auch gemacht, die Länge kann aber varrieren.

ehmm..

Re: aus einem String Leezeichen auschneiden

14. Oktober 2009 11:19

Hast du Datei.TEXTMODE := TRUE; gesetzt?
Ansonsten wird nach jedem WRITE eine Escape-Sequenz angehängt (\n).

Re: aus einem String Leezeichen auschneiden

14. Oktober 2009 11:30

hallo Timo,

wo muss ich Datei.TEXTMODE := TRUE setzen?
da ganze habe ich im OnAfterGetRecort .

Code:
Datei.WRITE("Projekt.Feld1+ ',');
          Datei.SEEK(Datei.POS - 1);
          Datei.WRITE("Projekt."Feld 2" +',');
          Datei.SEEK(Datei.POS - 1);
          Datei.WRITE(Projekt.Feld 3");
          Datei.SEEK(Datei.POS - 1);   
          [b]Datei.TRUNC;[/b]
          ZeilenUmbruch;
          Datei.SEEK(Datei.POS - 1);

Re: aus einem String Leezeichen auschneiden

14. Oktober 2009 11:51

super ..es hat funktioniert..danke für den Tipp. :-D

[Gelöst]aus einem String Leezeichen auschneiden

14. Oktober 2009 12:48

Lösung war:
Textmode:= True;
Leerzeichen waren dann weg.