Auslesen einer Zeichenkette mittels CWRITE aus einer Textdatei

  • Hallo zusammen,


    ich möchte gerne aus einer Textdatei test.txt, die unter C:\KRC\ROBOTER\UserFiles liegt einen Text auslesen; eine Zeile, unbestimmte Anzahl, aber nicht mehr als ~50 Zeichen. Der CWRITE Befehl wird ausgeführt, jedoch mit einer Fehlermeldung. Die Stat.MSG_NO enthält nach Ausführung des Befehls den Wert -11; laut der Doku: "Mindestens ein Funktionsparameter besitzt einen ungültigen Wert.".


    Die einzelnen Variablen werden nach der Deklaration initialisiert:

    Code
    ; ---------------
    ; INITIALISIERUNG
    ; ---------------
    RET_VAL = STRCLEAR(krd_file_name[])
    RET_VAL = STRCLEAR(eingelesener_text[])
    int_zeichen_gelesen = 0
    file_handle = 0
    Mode = #SYNC; 
    krd_file_name[]="test.txt"; unter C:\KRC\ROBOTER\UserFiles\


    Das öffnen der Datei und das Auslesen selbst sehen so aus:

    Das Öffnen funtioniert, das Auslesen jedoch nicht.


    Es handelt sich um eine KRC4 Steuerung mit der Version 8.3.42



    Ich komme nicht dahinter, wo das Problem liegt. Könnte mir da jemand helfen?




    PS: Ist meiner erster Post. Ich weiß nicht, ob ich in der richtigen Kategorie, etc. gelandet bin :/

  • Schritt für Schritt zum Roboterprofi!
  • problem ist:


    Code
    RET_VAL = STRCLEAR(eingelesener_text[])


    Variable muss aber nicht lehrgemacht...


    Probiere es mit Schleife zB


    Code
    DECL INT i
    
    
    FOR i=1 TO StrDeclLen(eingelesener_text[])
       eingelesener_text[i]=0
    ENDFOR



  • Danke für die schnelle Antwort. Habe alles wie beschrieben umgesetzt. Habe auch das Code-Beispiel einmal als Vorlage genutzt. Trotzdem ist nach der Ausführung der String eingelesener_text[] leer. Die Stat.MSG_NO enthält nach wie vor die Fehlernummer -11.

  • Wenn kein Trennzeichen als Parameter angegeben wird, wird solange gelesen, bis ein Zeilenende oder die maximale Anzahl an Zeichen erreicht ist. Ich hab mittlerweile aber schon beides ausprobiert, also sowohl mit, als auch ohne Trennzeichen. Das Ergebnis ist leider immer wieder dasselbe.

  • ja...

    "krl_fscanf" liest genau eine Zeile... (bis Zeilenumbruch)

    "krl_fgets" liest weniger (oder bis zum Zeilenumbruch...), Trennzeichen is optional...

    Min Beispiel funktioniert auch ohne Trennzeichen.


    Die Meldung "-11" sagt dass alle Parameter vorhanden sind (und deshalb Program kompiliert) .... aber einer hat den falschen Wert... oder Puffer eingelesener_text[] ist zu kurz.

    2 Mal editiert, zuletzt von panic mode ()

  • cWRITE oder cREAD? Willst Du aus der Datei LESEN (Read)?

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden