PDA

View Full Version : Reihenfolge Zeichen für LF



Domeus
08-07-22, 10:10
Hallo.

Wenn ich eine Logische habe die ein alphanummerisches Feld einer Datei aufsteigend liest, gibt es eine Tabelle dafür welche Zeichen in welcher Reihenfolge kommen? Zuerst wahrscheinlich das leere Feld, dann Zahlen und dann Buchstaben? Und was ist mit Sonderzeichen wie z.B. einer Klammer [?

Am liebsten wäre mir eine komplette Tabelle der Reihenfolge aller gängigen Zeichen.

Vielen Dank und Gruß
Sebastian

Fuerchau
08-07-22, 11:00
Das kommt immer darauf an, welche CCSID die verwendest. Sonderzeichen sind da schon mal an unterschiedlichen Stellen.
EBCDIC (IBM i) und ANSI/ASCII/UTF8/UTF16/UCS unterscheiden sich da erheblich.

Für Sortierfolgen (Collation) gibt es dann noch mal eigene Tabellen.
Aktuelle Tabellen kann ich so ert mal keine finden.

Pauschal (IBM i):
Sonderzeichen(.,?-+), Space (40), Großbuchstaben, Kleinbuchstaben, Umlaute u.ä., Zahlen.
Dazwischen irgendwo auch []{}.

ANSI
Sonderzeichen (.,-?), Zahlen, Großbuchstaben, Kleinbuchstaben, Umlaute u.ä.

https://www.ibm.com/docs/api/v1/content/ssw_ibm_i_73/nls/rbagsccsidref.htm

Domeus
08-07-22, 11:18
Hallo Fuerchau,
vielen Dank für die Antwort. Da shabe ich fast schon befürchtet. Ich habe nämlich folgendes Problem:

Ich bekomme vom Kunden eine Auftragsprio übermittelt. Aktuell kann das 0 (höchste Prio) bis 8 und außerdem LEER (niedrigste Prio) sein. Wenn ich mit einer logischen nun von der höchsten zur niedrigsten sortieren möchte kann ich natürlich bei LEER einfach eine 9 einsetzen. Dann würde es ja funktionieren. Wenn der Kunde aber morgen auf die Idee kommt nun auch die Prio 9 selbst zu nutzen und zu übertragen, dann weiß ich nicht was ich mit leer mache. Dann würde mir spontan nur eine zweite LF einfallen die nachgestellt dann die LEER bearbeitet.

Oder wie könnte ich das am besten umsetzen?

Danke und Gruß
Sebastian

Robi
08-07-22, 11:33
Kannst du nicht mit ALTSEQ deine Wunschreihenfolge anlegen?

Fuerchau
08-07-22, 11:58
Dafür muss man dann aber erst eine Sort-Tabelle erstellen.
Du kannst einfach ein 2. Feld erstellen, da kopierst du bei Blank eben *HIGHVAL rein (x'FF').

Domeus
08-07-22, 12:04
An das *HIVAL habe ich gar nicht gedacht. Das probiere ich direkt mal aus.

Edit: Das hat geklappt. Danke nochmal...

Pikachu
08-07-22, 18:54
Extended Binary Coded Decimal Interchange Code (EBCDIC) (https://de.wikipedia.org/wiki/Extended_Binary_Coded_Decimal_Interchange_Code)

Fuerchau
10-07-22, 15:58
Schöne Seite, leider nur ein Auszug von der Vielzahl der Codepages.
Ich habe jetzt auch was gefunden und ich finde es gut gemacht:
https://en.everybodywiki.com/index.php?title=_Special:Search&search=ebcdic&go=Go&ns0=1

Wichtig zu wissen:
https://www.ibm.com/docs/en/i/7.4?topic=sets-invariant-character-set-its-exceptions