LesezeichenAbonnierenRSS-Feed abonnieren
Ina
Calcite | Level 5 Ina
Calcite | Level 5

Guten Tag,

 

Die Datei enthält mehrere rows, es wir aber nur die erste Zeile eingelesen. Woran kann es liegen?

ich habe es mit INFILE XXXX TRUNCOVER probiert.

 

 

7 ANTWORTEN 7
Kurt_Bremser
Super User

Von welcher Plattform stammt die Datei (Windows, UNIX, sonstwas)?

Wie kommt die Datei vom Ursprung zum SAS-Server?

 

Irgendwo da passiert wahrscheinlich was.

 

Unter Windows solltest Du die Datei mit sowas wie notepad++ öffnen und dann auf Hexadezimal-Darstellung schalten; damit sieht man dann, wie die Zeilenenden kodiert sind.

 

Edit: SAS läuft unter UNIX, also ist das schon mal geklärt. Bleibt die Frage, wie die Datei zum UNIX-Server kommt, und von wo sie ursprünglich stammt. Im Notfall einen Exzerpt in ein zip-Archiv stellen und das hier anhängen.

Ina
Calcite | Level 5 Ina
Calcite | Level 5

Die Datei liegt auch auf UNIX.

wie sie zum Unix-Server kommt, weiß ich leider nicht. Ursprünglich war es eine txt-Datei.

 

mit INFILE XXX lrecl=106 recfm=f

habe ich es geschafft, dass auch andere Zeilen gelesen, aber mit fehlerhaften Einträgen.

Ich vermute, es liegt daran, dass

die Datei so aussieht:

a b c d

        a b c d

              a b c d

 

 

 

Kurt_Bremser
Super User

Wenn das so gestaffelt aussieht, dann ist höchstwahrscheinlich recfm=f korrekt, aber die lrecl zu kurz.

Einfach den Verschub von einer Zeile zur nächsten auszählen und das Ergebnis zur lrecl addieren.

 

Trotzdem ist es wichtig, die Struktur der Datei zu kennen. Auf Linux gibts das Tool hexdump zum Anzeigen einer Datei in Hexadezimal-Darstellung.

hexdump -C dateiname | head

zeigt einem die ersten 160 Zeichen. Falls mehr gebraucht wird, einfach (zB) -20 an das head anhängen.

jh_ti_bw
Obsidian | Level 7

Hallo,

 

beim Infile-statement  option termstr = verwenden.

Es gibt die Optionen CRLF für Windows Zeilenenende mit x0D0A, CR für Mac Zeilenende mit x0D und LF für Unix-Zeilenende mit  x0A

 

Ansonsten hat die Datei eventuell keinen Zeilenumbruch und der Versatz kommt nur aus dem automatischen Umbruch deines Editors. Schon mal die Fenstergröße geändert?

 

Viele Grüße

Jan

Ina
Calcite | Level 5 Ina
Calcite | Level 5

mit der Option termstr=lf klappt es leider nicht

Kurt_Bremser
Super User

Ina schrieb:

mit der Option termstr=lf klappt es leider nicht


Das sieht mir auch sehr nach einer FB-Datei vom Großrechner aus. Oder nach etwas, das genauso erstellt wurde.

Ina
Calcite | Level 5 Ina
Calcite | Level 5

Mit auszählen des Abstandes für lrecl hat es geklappt! Vielen Dank!

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

Diskussionsstatistiken
  • 7 Antworten
  • 1989 Aufrufe
  • 1 Kudo
  • 3 in Unterhaltung