Advertisement
Guest User

IniFileReader

a guest
Aug 26th, 2016
318
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. (*
  2. Die Aufgabe des FBs ist es eine Inidatei einzulesen und bei gefundenen Einträgen
  3. die Funktion "MProcessKey" des übergebenen IInifileProcessor auszuführen.
  4. Dadurch verbleibt die konkrete Abarbeitung und Speicherung der Werte im Projekt
  5. (wo der IInifileProcessor-FB implementiert ist) und das allgemein gültige auslesen
  6. der Inidatei wird hier in die Library ausgelagert.
  7. *)
  8. {attribute 'symbol' := 'none'}
  9. FUNCTION_BLOCK IniFileReader
  10. VAR_INPUT
  11. sIniFileName : STRING; //Name (bzw. Pfad) der Inidatei
  12. refIInifileProc : IInifileProcessor; //Reference zum IInifileProcessor-FB
  13.  
  14. END_VAR
  15. VAR_OUTPUT
  16. xInifileDone : BOOL := FALSE;
  17. END_VAR
  18. VAR
  19. structFSD : OSCAT_NETWORK.FILE_SERVER_DATA;
  20. sIPFstr : STRING(OSCAT_BASIC.STRING_LENGTH) := '';
  21. bIPFrun : BYTE;
  22. sIPFkey : STRING(OSCAT_BASIC.STRING_LENGTH);
  23. sIPFvalue : STRING(OSCAT_BASIC.STRING_LENGTH);
  24. udiOffset : UDINT := 0;
  25. ptNetBuf : OSCAT_NETWORK.NETWORK_BUFFER;
  26. fbINI_PARSER_FILE : OSCAT_NETWORK.INI_PARSER_FILE;
  27. FS : OSCAT_NETWORK.FILE_SERVER;
  28.  
  29. sSection : STRING(30);
  30. END_VAR
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37. IF NOT xInifileDone THEN
  38. bIPFrun := 3;
  39. END_IF
  40.  
  41. structFSD.AUTO_CLOSE := T#0MS;
  42.  
  43. fbINI_PARSER_FILE(
  44. FILENAME := sIniFileName,
  45. FSD := structFSD,
  46. STR := sIPFstr,
  47. RUN := bIPFrun,
  48. OFFSET := udiOffset,
  49. KEY := sIPFkey,
  50. VALUE := sIPFvalue,
  51. PT := ptNetBuf//,
  52. //RESULT =>
  53. );
  54.  
  55. {warning disable c0033}
  56. IF NOT xInifileDone THEN
  57. MIniFile();
  58. END_IF
  59.  
  60. FS(FSD:=structFSD,PT:=ptNetBuf); (* FILE_SERVER *)
  61. {warning restore c0033}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement