<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to How to extract datas from a file</title><link href="https://forge.codesys.com/forge/talk/CODESYS-V2/thread/6186931ae5/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/CODESYS-V2/thread/6186931ae5/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/CODESYS-V2/thread/6186931ae5/</id><updated>2020-02-27T20:38:00.577000Z</updated><subtitle>Recent posts to How to extract datas from a file</subtitle><entry><title>How to extract datas from a file</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/6186931ae5/?limit=25#d8a5" rel="alternate"/><published>2020-02-27T20:38:00.577000Z</published><updated>2020-02-27T20:38:00.577000Z</updated><author><name>bmattlet</name><uri>https://forge.codesys.com/u/bmattlet/</uri></author><id>https://forge.codesys.combc791ce6c626206b2ea6c5177b48322ee028105e</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;little add-on to my explanation :&lt;/p&gt;
&lt;p&gt;It says "The return value is the number of successfully read bytes" for the SysFileLib function. but I need the datas or the string that I'm reading...&lt;/p&gt;
&lt;p&gt;To do something like that :&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nt"&gt;admin&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;ReadMyConfigFile&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;filename&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;paramater1&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;parameter2&lt;/span&gt;&lt;span class="o"&gt;,...);&lt;/span&gt;
&lt;span class="nt"&gt;password&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;ReadMyConfigFile&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;filename&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;paramater1&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;parameter2&lt;/span&gt;&lt;span class="o"&gt;,...);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</summary></entry><entry><title>How to extract datas from a file</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/6186931ae5/?limit=25#a529" rel="alternate"/><published>2020-02-27T20:37:56.567000Z</published><updated>2020-02-27T20:37:56.567000Z</updated><author><name>bmattlet</name><uri>https://forge.codesys.com/u/bmattlet/</uri></author><id>https://forge.codesys.com852052d563413c4ded4ccc1f93c3ed6d517e4218</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi, &lt;/p&gt;
&lt;p&gt;I don't need an example to write datas, I think mine works fine, I have trouble reading a file only.&lt;/p&gt;
&lt;p&gt;I have an example to write/read datas with the application note that Wago made on how to use SysFileLib and WagoLibFtp (to send a file on a FTP) but...&lt;/p&gt;
&lt;p&gt;What is my problem : &lt;/p&gt;
&lt;p&gt;I have a program that writes measures in a file and then send the file on a FTP server. What I'd like to do is : using an FTP client or an SD card, read a configuration file that contains the host ip, password, name of sensors and that kind of a information so I can run the same program on different PLCs and using different sensors without editing the program and only compiling it.&lt;br/&gt;
what I can't do is reading the file line by line to extract the host ip, password, etc.&lt;/p&gt;
&lt;p&gt;Did I explain well?&lt;/p&gt;
&lt;p&gt;Thank you for your help.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>How to extract datas from a file</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/6186931ae5/?limit=25#f3df" rel="alternate"/><published>2020-02-27T20:37:55.117000Z</published><updated>2020-02-27T20:37:55.117000Z</updated><author><name>DFreiberg</name><uri>https://forge.codesys.com/u/dfreiberg/</uri></author><id>https://forge.codesys.com6035c119391a7d0f693e7f0d16839d162310f519</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Please find a small example to write a csv-File with help of SyslibFile:&lt;br/&gt;
PROGRAM PLC_PRG&lt;br/&gt;
VAR&lt;br/&gt;
    hFile:DWORD;&lt;br/&gt;
    dwWritten: DWORD;&lt;br/&gt;
    szFilePath: STRING:= 'C:\test.csv';&lt;br/&gt;
    szSeperator: STRING(1):= ';';&lt;br/&gt;
    szCurrent: STRING(2);&lt;br/&gt;
    wNewLine: WORD:= 2573; (&lt;em&gt;16#0A0D&lt;/em&gt;)&lt;br/&gt;
    iCounter1: INT;&lt;br/&gt;
    bOnce: BOOL:= TRUE;&lt;br/&gt;
    iCounter2: INT;&lt;br/&gt;
END_VAR&lt;br/&gt;
IF bOnce THEN&lt;br/&gt;
    hFile:= SysFileOpen(szFilePath, 'w');&lt;br/&gt;
    FOR iCounter2:= 1 TO 5 DO&lt;br/&gt;
        FOR iCounter1:= 1 TO 5 DO&lt;br/&gt;
            szCurrent:= CONCAT(INT_TO_STRING(iCounter2), INT_TO_STRING(iCounter1));&lt;br/&gt;
            dwWritten:= SysFileWrite(hFile, ADR(szCurrent), 2);&lt;br/&gt;
            IF iCounter1 &amp;lt;&amp;gt; 5 THEN&lt;br/&gt;
                dwWritten:= SysFileWrite(hFile, ADR(szSeperator), 1);&lt;br/&gt;
            ELSE&lt;br/&gt;
                dwWritten:= SysFileWrite(hFile, ADR(wNewLine), SIZEOF(wNewLine));&lt;br/&gt;
            END_IF&lt;br/&gt;
        END_FOR&lt;br/&gt;
    END_FOR&lt;br/&gt;
    SysFileClose(hFile);&lt;br/&gt;
    bOnce:= FALSE;&lt;br/&gt;
END_IF&lt;/p&gt;
&lt;p&gt;READ can be done like this:&lt;/p&gt;
&lt;p&gt;IF xDoRead THEN&lt;br/&gt;
        dwReturn := SysFileRead(File:=hFile, Buffer:=ADR(sBufferIn), Size:=dwSize);&lt;br/&gt;
        IF dwReturn &amp;lt;&amp;gt; 0 THEN&lt;br/&gt;
            sBuffer := sBufferIn;&lt;br/&gt;
        END_IF&lt;br/&gt;
            xDoRead := FALSE;&lt;br/&gt;
    END_IF&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;xDoReadLine&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
    &lt;span class="nv"&gt;dwReturn&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;SysFileRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;File&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;hFile&lt;/span&gt;, &lt;span class="nv"&gt;Buffer&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;ADR&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;sBufferIn&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;, &lt;span class="nv"&gt;Size&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;dwReturn&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
        &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;sBufferIn&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;$R&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
            &lt;span class="nv"&gt;sBuffer&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;CONCAT&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;STR1&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;sBuffer&lt;/span&gt;, &lt;span class="nv"&gt;STR2&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;sBufferIn&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;ELSE&lt;/span&gt;
            &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nv"&gt;Dummy&lt;/span&gt; &lt;span class="nv"&gt;Read&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
            &lt;span class="nv"&gt;SysFileRead&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;File&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;hFile&lt;/span&gt;, &lt;span class="nv"&gt;Buffer&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;ADR&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;sBufferIn&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;, &lt;span class="nv"&gt;Size&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
            &lt;span class="nv"&gt;dwLine&lt;/span&gt;  :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;dwLine&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
            &lt;span class="nv"&gt;sBuffer&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;''&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
        &lt;span class="nv"&gt;END_IF&lt;/span&gt;
    &lt;span class="nv"&gt;END_IF&lt;/span&gt;
&lt;span class="nv"&gt;END_IF&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;The read result must be adapted to the syntax of the written file.&lt;/p&gt;
&lt;p&gt;Writing can be done also with help of SysfileStream library.&lt;br/&gt;
PROGRAM PLC_PRG&lt;br/&gt;
VAR&lt;br/&gt;
    hFile: DWORD;&lt;br/&gt;
    diReturn:DINT;&lt;br/&gt;
        NeueZ:STRING:='$n';                                    (&lt;em&gt; Neue zeile &lt;/em&gt;)&lt;br/&gt;
        Zeile: INT;&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;   &lt;span class="nt"&gt;ValueReal&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;REAL&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="nt"&gt;1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;23&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
   &lt;span class="nt"&gt;hFileDelete&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
   &lt;span class="nt"&gt;FileName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nd"&gt;STRING&lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="s1"&gt;'D:\temp\w2test.txt'&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;                 &lt;span class="o"&gt;(*&lt;/span&gt; &lt;span class="nt"&gt;Speicher&lt;/span&gt; &lt;span class="nt"&gt;ort&lt;/span&gt; &lt;span class="nt"&gt;auf&lt;/span&gt; &lt;span class="nt"&gt;SD&lt;/span&gt; &lt;span class="nt"&gt;Karte&lt;/span&gt; &lt;span class="o"&gt;*)&lt;/span&gt;
    &lt;span class="nt"&gt;bWriteSystemText&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;BOOL&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;END_VAR&lt;/p&gt;
&lt;p&gt;IF bWriteSystemText THEN&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;            &lt;span class="nv"&gt;bWriteSystemText&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;FALSE&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;

            &lt;span class="nv"&gt;hFile&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;SysFileStreamFOpen&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;FileName&lt;/span&gt;, &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;w&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;

            &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;hFile&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;

                           &lt;span class="k"&gt;FOR&lt;/span&gt; &lt;span class="nv"&gt;Zeile&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="nv"&gt;TO&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt; &lt;span class="k"&gt;DO&lt;/span&gt;
                                                           &lt;span class="nv"&gt;diReturn&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;SysFileStreamFPrintf_Real&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;hFile&lt;/span&gt;, &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;%6.2f&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;, &lt;span class="nv"&gt;ValueReal&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
                                                           &lt;span class="nv"&gt;diReturn&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;SysFileStreamFPrintf_String&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;hFile&lt;/span&gt;, &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;%s&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;, &lt;span class="nv"&gt;ADR&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;NeueZ&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
                           &lt;span class="nv"&gt;END_FOR&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;

                           &lt;span class="nv"&gt;diReturn&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;SysFileStreamFClose&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;hFile&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
                           &lt;span class="nv"&gt;hFile&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
            &lt;span class="nv"&gt;END_IF&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;END_IF;&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>How to extract datas from a file</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/6186931ae5/?limit=25#c04a" rel="alternate"/><published>2020-02-27T20:37:51.281000Z</published><updated>2020-02-27T20:37:51.281000Z</updated><author><name>ramashu</name><uri>https://forge.codesys.com/u/ramashu/</uri></author><id>https://forge.codesys.com35d738857b9f3974d99ec66881e31689998e8c22</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi. I have the some problem (Question).&lt;br/&gt;
I have a file (CVS) in the SD Card and I tried to read it, but I can't. &lt;br/&gt;
Do somebody help me with an example how to use the sysfilelib (sysfileread, sysfilewrite)&lt;/p&gt;
&lt;p&gt;Thanks in advance&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>How to extract datas from a file</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/6186931ae5/?limit=25#7001" rel="alternate"/><published>2020-02-27T20:37:49.905000Z</published><updated>2020-02-27T20:37:49.905000Z</updated><author><name>DFreiberg</name><uri>https://forge.codesys.com/u/dfreiberg/</uri></author><id>https://forge.codesys.coma1ec698dca4dc488a9e027902182e63d59c250b5</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Sorry, but I do not find out your exact problem.&lt;br/&gt;
Do you need an example how to read/wrie data from a file?&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>How to extract datas from a file</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/6186931ae5/?limit=25#bdef" rel="alternate"/><published>2020-02-27T20:37:46.055000Z</published><updated>2020-02-27T20:37:46.055000Z</updated><author><name>bmattlet</name><uri>https://forge.codesys.com/u/bmattlet/</uri></author><id>https://forge.codesys.com00aad527aaa131657946bc461c4adcc3f394b98d</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I'd like to read a file that'd be on the PLC memory to extract datas from it such as initial values for counters, host name, ip addresses, filenames and stuff like that so I could change propreties without compiling the program on CoDeSys.&lt;/p&gt;
&lt;p&gt;I know that SysFileOpen/Read/Write exist but I don't see any function or programm that reads through the file and copies the datas from it.&lt;/p&gt;
&lt;p&gt;Is it possible ?&lt;/p&gt;
&lt;p&gt;Thank you for any help&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>