Opsi Textdatei auslesen

Antworten
luca_de
Beiträge: 29
Registriert: 30 Nov 2018, 13:38

Opsi Textdatei auslesen

Beitrag von luca_de »

Hallo zusammen,

ich möchte gerne mithilfe eines Opsi Skriptes eine Textdatei auslesen und den String, welchen ich zurückbekomme entweder mittels Regular Expression oder mithilfe einer Teilung des Strings bearbeiten.
Ich benötige immer die zwei letzten Zeichen aus dem String.

Wie kann ich das machen?

Folgendes funktioniert bereits allerdings muss ich nun noch die letzten beiden Zeichen in einen extra String bekommen

Code: Alles auswählen

[ACTIONS]

DefStringList $HF_STRING$
set $HF_STRING$ = loadtextfile('C:Test\Test.txt')
Oder ist es möglich eine DefVar, welche den Wert 10 hat um eins zu erhöhen oder zu dekrementieren, damit ich strPart nutzen kann?
hobbyist
Beiträge: 38
Registriert: 29 Mai 2018, 13:38

Re: Opsi Textdatei auslesen

Beitrag von hobbyist »

Hallo,

schau DIr mal das Kapitel 9.6. Umgang mit Zahlen [W/L], insbesondere die Funktion calculate. Damit könntest Du dann mit den Funktionen strLength und strPart entsprechendes ermitteln, um den gewünschten Teil zu erhalten. Nur vorab zur Sicherheit, bevor die Frage kommt: Eine StringList ist kein String!

Für manche Aufgaben kann es auch einfacher sein, ein separates Skript/Programm zu programmieren, das ins Paket zu packen und dann den Rückgabewert in OPSI zu verarbeiten.

Ich denke aber mit ein bisschen Fantasie und Funktionskunde sollte Dein Vorhaben so auch mit OPSI gelingen.

Viele Grüße
bernd670
Beiträge: 90
Registriert: 16 Mär 2018, 10:44

Re: Opsi Textdatei auslesen

Beitrag von bernd670 »

Hallo,

evtl. könnte es so funktionieren (nicht getestet)

Code: Alles auswählen

[ACTIONS]
DefVar $lsc$ 

; Gibt die rechten $noc$ Zeichen des angegeben Strings $string$ zurück
; ist $noc$ keine Zahl oder $noc$ größer als strLength wird $string$ zurückgegeben
DefFunc strRight (val $string$ : string, val $noc$ : string ) : string
  DefVar $startPos$ = "1"
  DefVar $length$ = strLength($string$)
       
  If isNumber($noc$)
    If $length$ INT>= $noc$
       Set $startPos$ = calculate($length$ - $noc$ + 1)
    EndIf
  EndIf
  
  If $startPos$ = "1"
    Set $result$ = $string$
  Else
    Set $result$ = strPart($string$, $startPos$, $noc$)
  EndIf
          
EndFunc

; letzten 2 Zeichen aus der Textdatei
Set $lsc$ = strRight(takeString(-1,loadtextfile('C:Test\Test.txt')), "2")
MfG
Bernd
Antworten