Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 3 von 3

Thema: zu viele Leerzeichen bei einer *.txt Datei

  1. #1
    Registriert seit
    27.09.2010
    Beiträge
    6
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    bei der Erstellung einer *.txt, in der Arraywerte vorkommen sollen, ist mir aufgefallen, dass zu viele Leerzeichen generiert wurden..
    Hat vielleicht jemand eine Idee zur lösung des Problemes?
    Anbei die *.txt datei + der Code:

    Var

    A_W:ARRAY[0..10] OF DINT;
    A_W2:ARRAY[0..10] OF DINT;
    handle: WORD;
    hFile1: WORD;
    dwWritten: DWORD;
    szFilePath: STRING:= 'test.txt';
    szSeperator: STRING(1):= ';';
    wNewLine: WORD:= 2573; (*16#0A0D*)
    iCounter1: INT;
    bOnce: BOOL:= TRUE;
    iCounter2: STRING;
    iCounter3: STRING;
    ueberschrift1:STRING;
    ueberschrift2:STRING;

    END_VAR

    IF bOnce THEN
    hFile1:= SysFileOpen(szFilePath, 'w');
    A_W[0]:=0; A_W[1]:=11; A_W[2]:=22; A_W[3]:=33; A_W[4]:=44; A_W[5]:=55; A_W[6]:=66; A_W[7]:=77; A_W[8]:=88; A_W[9]:=99; A_W[10]:=101;
    A_W2[0]:=5; A_W2[1]:=15; A_W2[2]:=25; A_W2[3]:=35; A_W2[4]:=45; A_W2[5]:=55; A_W2[6]:=65; A_W2[7]:=75; A_W2[8]:=85; A_W2[9]:=95; A_W2[10]:=105;
    ueberschrift1:='Moment in [Nm]';
    dwWritten:= SysFileWrite(hFile1, ADR(ueberschrift1), SIZEOF(ueberschrift1));
    ueberschrift2:='Drehgeberdifferenz in [°]';
    dwWritten:= SysFileWrite(hFile1, ADR(szSeperator), 1);
    dwWritten:= SysFileWrite(hFile1, ADR(ueberschrift2), SIZEOF(ueberschrift2));
    dwWritten:= SysFileWrite(hFile1, ADR(wNewLine), SIZEOF(wNewLine));
    FOR iCounter1:=0 TO 10 BY 1 DO
    iCounter2:=DINT_TO_STRING(A_W[iCounter1]);
    dwWritten:= SysFileWrite(hFile1, ADR(iCounter2), SIZEOF(iCounter2));
    iCounter3:=DINT_TO_STRING(A_W2[iCounter1]);
    dwWritten:= SysFileWrite(hFile1, ADR(szSeperator), 1);
    dwWritten:= SysFileWrite(hFile1, ADR(iCounter3), SIZEOF(iCounter3));
    dwWritten:= SysFileWrite(hFile1, ADR(wNewLine), SIZEOF(wNewLine));
    END_FOR


    SysFileClose(hFile1);
    bOnce:= FALSE;

    END_IF
    Angehängte Dateien Angehängte Dateien
    Zitieren Zitieren zu viele Leerzeichen bei einer *.txt Datei  

  2. #2
    Registriert seit
    24.02.2009
    Beiträge
    1.242
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    SizeOf(String) ist immer 81 egal was im String drin steht.
    Also entweder begrenzt du die Größe deiner Strings ( StringVar : Sting[20]; => sizeof(StringVar) = 21)
    oder du fügst deine Einzelstrings zu einem Zeilenstring zusammen (concat) und schreibst Zeilenweise in deine Datei (z.b. mit FB_FilePuts).

  3. Folgender Benutzer sagt Danke zu MasterOhh für den nützlichen Beitrag:

    Anton323 (11.01.2012)

  4. #3
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    749
    Danke
    27
    Erhielt 164 Danke für 142 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Oder Du nimmst statt SIZEOF die Funktion LEN, die gibt die tatsächliche Stringlänge zurück.

Ähnliche Themen

  1. txt Datei mir passwort versehen
    Von Bensen83 im Forum HMI
    Antworten: 16
    Letzter Beitrag: 14.07.2011, 08:25
  2. aus Flexibel heraus eine TXT Datei ändern
    Von rostiger Nagel im Forum HMI
    Antworten: 17
    Letzter Beitrag: 23.01.2011, 14:55
  3. Antworten: 6
    Letzter Beitrag: 04.12.2009, 10:19
  4. Antworten: 2
    Letzter Beitrag: 12.07.2006, 08:52
  5. Batch - Datei in einer Batch - Datei aufrufen
    Von CrazyCat im Forum PC- und Netzwerktechnik
    Antworten: 2
    Letzter Beitrag: 26.01.2006, 09:14

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •