Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (*
- Die Aufgabe des FBs ist es eine Inidatei einzulesen und bei gefundenen Einträgen
- die Funktion "MProcessKey" des übergebenen IInifileProcessor auszuführen.
- Dadurch verbleibt die konkrete Abarbeitung und Speicherung der Werte im Projekt
- (wo der IInifileProcessor-FB implementiert ist) und das allgemein gültige auslesen
- der Inidatei wird hier in die Library ausgelagert.
- *)
- {attribute 'symbol' := 'none'}
- FUNCTION_BLOCK IniFileReader
- VAR_INPUT
- sIniFileName : STRING; //Name (bzw. Pfad) der Inidatei
- refIInifileProc : IInifileProcessor; //Reference zum IInifileProcessor-FB
- END_VAR
- VAR_OUTPUT
- xInifileDone : BOOL := FALSE;
- END_VAR
- VAR
- structFSD : OSCAT_NETWORK.FILE_SERVER_DATA;
- sIPFstr : STRING(OSCAT_BASIC.STRING_LENGTH) := '';
- bIPFrun : BYTE;
- sIPFkey : STRING(OSCAT_BASIC.STRING_LENGTH);
- sIPFvalue : STRING(OSCAT_BASIC.STRING_LENGTH);
- udiOffset : UDINT := 0;
- ptNetBuf : OSCAT_NETWORK.NETWORK_BUFFER;
- fbINI_PARSER_FILE : OSCAT_NETWORK.INI_PARSER_FILE;
- FS : OSCAT_NETWORK.FILE_SERVER;
- sSection : STRING(30);
- END_VAR
- IF NOT xInifileDone THEN
- bIPFrun := 3;
- END_IF
- structFSD.AUTO_CLOSE := T#0MS;
- fbINI_PARSER_FILE(
- FILENAME := sIniFileName,
- FSD := structFSD,
- STR := sIPFstr,
- RUN := bIPFrun,
- OFFSET := udiOffset,
- KEY := sIPFkey,
- VALUE := sIPFvalue,
- PT := ptNetBuf//,
- //RESULT =>
- );
- {warning disable c0033}
- IF NOT xInifileDone THEN
- MIniFile();
- END_IF
- FS(FSD:=structFSD,PT:=ptNetBuf); (* FILE_SERVER *)
- {warning restore c0033}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement