CATALOG_LAYOUT '1234567890123456789012345678901234567890123456789012345678901234567890 DEFINE_CATALOG '' '' 1 1 END DEFINE_CATALOG 'Dateiname (maximal 66 Zeichen)' 'FILE_NAME' 1 1 END DEFINE Pc_gerechter_filename LOCAL filename_org LOCAL filename_old LOCAL Zeilenlänge LOCAL Marker LOCAL Zeichen LOCAL Pos LOCAL Länge LOCAL filename_new LET Marker 0 CATALOG '' DEL_OLD '/tmp/tmp_xx' OPEN_OUTFILE 1 DEL_OLD '/tmp/tmp_cat_xx' OPEN_INFILE 2 '/tmp/tmp_xx' EDIT_FILE '/tmp/tmp_xx' REPEAT READ_FILE 2 filename_old IF (filename_old = 'END-OF-FILE') LET Marker 1 LET filename_old ('') END_IF IF (filename_old = '') ELSE LET Zeilenlänge (LEN (filename_old)) LET filename_old (SUBSTR filename_old 1 66) LET filename_old (TRIM filename_old) END_IF IF ((filename_old = '') OR (SUBSTR filename_old 1 6 = 'hp_cat')) ELSE LET filename_org filename_old Umwandeln ' ' '-' Umwandeln '.' '-' Umwandeln ':' '_' Umwandeln ';' '_' Umwandeln '\' '-' Umwandeln '!' '-' Umwandeln '"' '-' Umwandeln "'" '-' Umwandeln '°' 'grad' Umwandeln 'Ø' 'dmr' Umwandeln 'ø' 'dmr' Umwandeln 'ä' 'ae' Umwandeln 'Ä' 'Ae' Umwandeln 'ö' 'oe' Umwandeln 'Ö' 'Oe' Umwandeln 'ü' 'ue' Umwandeln 'Ü' 'Ue' Umwandeln 'ß' 'ss' Umwandeln '_' '-' IF (LEN filename_new > 66) LET filename_new (TRIM(SUBSTR filename_new 1 66)) END_IF LET filename_new (LWC filename_new) COPY_FILE filename_org DEL_OLD filename_new PURGE_FILE filename_org CONFIRM END_IF UNTIL (Marker = 1) CLOSE_FILE 1 CLOSE_FILE 2 END_DEFINE DEFINE Umwandeln PARAMETER zeichen_old PARAMETER zeichen_new LET Pos 0 LET filename_new '' LET Länge (LEN filename_old) REPEAT LET Pos (Pos + 1) LET Zeichen (SUBSTR filename_old Pos 1) IF (Zeichen <> zeichen_old) LET filename_new (filename_new + Zeichen) ELSE LET filename_new (filename_new + zeichen_new) END_IF UNTIL (Pos = Länge) LET filename_old filename_new END_DEFINE