Sonntag, 3. März 2024

TXT-DeEncrypt

TXT-DeEncrypt ist ein kleines Tool mit dem man Textdateien einfach verschlüsseln und entschlüsseln kann. Die Datei muss nur mit dem Tool geöffnet werden. Die Änderung an der Datei vornehmen und sie wieder schließen. TXT-DeEncrypt erkennt dieses Verhalten und verschlüsselt bzw. entschlüsselt die Datei. Das Tool wird mit VS 2019 Source zur verfügung gestellt.

Eine Exe ist kompiliert unter: \TXT-DeEncrypt\TXT_DeEncrypt\bin\Debug



TXT-DeEncrypt

GitHub 





Montag, 6. Februar 2023

TIA S7 Replace FB


Mit dem Funktionsblock "Replace" kann ein String in einer Zeichenkette gesucht und ersetzt werden. Der String wird komplett durchsucht und alle ersetzt. Es ist egal wie oft der String vorkommt und an welcher Position er steht.

Beispiel:

  • Input_String = 'Hallo110Hallo210Hallo310Hallo4'
  • Find_String = '10'
  • Replace_String = 'Du'
  • Output_String = 'Hallo1DuHallo2DuHallo3DuHallo4'

 FUNCTION_BLOCK "Replace"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
   VAR_INPUT
      Input_String : String;
      Find_String : String;
      Replace_String : String;
   END_VAR

   VAR_OUTPUT
      Out_String : String;
   END_VAR

   VAR_TEMP
      temp : String;
      temp_Position : Int;
      temp_Left : String;
      temp_Right : String;
   END_VAR


BEGIN
    IF LEN(#Input_String) = 0 THEN
        RETURN;
    END_IF;
    
    IF LEN(#Find_String) = 0 THEN
        RETURN;
    END_IF;
    
    #temp := #Input_String;
    
    IF FIND(IN1 := #temp, IN2 := #Find_String) = 0 THEN
        #Out_String := #temp;
        RETURN;
    END_IF;
    
    WHILE FIND(IN1 := #temp, IN2 := #Find_String) > 0 DO
       
        #temp_Position := FIND(IN1 := #temp, IN2 := #Find_String);
       
        IF #temp_Position > 1 THEN
            #temp_Left := LEFT(IN := #temp, L := #temp_Position - 1);
        ELSE
            #temp_Left := '';
        END_IF;
       
        IF #temp_Position + LEN(#Find_String) = LEN(#temp) +1 THEN
            #temp_Right := '';
        ELSE
        #temp_Right := RIGHT(IN := #temp, L := LEN(#temp) - #temp_Position - LEN(#Find_String) + 1);
        END_IF;
        #temp := CONCAT(IN1 := #temp_Left, IN2 := #Replace_String, IN3 := #temp_Right );
       
       
    END_WHILE;
    
    #Out_String := #temp;
END_FUNCTION_BLOCK