4. Okt 2010 

for english readers

In den September 2012 TechTips: Programmatically Import/Export Data with Settings

Der Import-Editor …

Ab und an gibt es in 4D was Neues zu entdecken. Es ist nicht neu in 4D, nur für mich und den ein oder anderen ist es neu – weil noch nie gebraucht und deshalb nie gefunden.

Zum Beispiel und aktuell im Import-Editor. 4D kann Texte fester Länge importieren und in Felder verteilen.

Feste Datensatzlänge bedeutet: Leerzeichen füllen auf bis zur maximalen Feldlänge, bzw. führende Nullen bringen Zahlen auf einheitliche Breite. DBF ist ein Datenformat fester Länge mit Felddefinitionen im Kopf des Textdokumentes.

fixedlength

Hier ein Bild aus der 4D V2004. Viel verändert hat sich auch in der V12 noch nicht.

Im normalen Tagesgeschäft käme ich gar nicht drauf, den Import-Editor zu nutzen. Solche Daten habe ich immer schon in Happen bis 30 KB von der Platte gelesen, mit altbewährtem Code auseinandergezuppelt und in Felder verteilt. Ist die Datenmenge groß und die Zuppelei aufwändig, kostet das viel Zeit, zuviel Zeit. Dann kann der Import über den Import-Editor schneller sein. Doch …

… und seine Macken

Leider hat der Import-Editor schon seit langem seine Macken – und keiner schert sich drum, sie zu beheben.

Der Import-Editor der V12 ist wirklich noch der alte. Noch immer gilt

  • Zuordnung steht:
  • 4152243 Sobald die Option Import ab Zeile, hier ab Zeile 2, verändert wird,
  • ist die Zuordnung zum Teufel.
4152245 Das ist so offensichtlich und so nervig, daß ich vermute, das Verhalten ist längst als Bug eingetragen.

Nee, das Bug-Procedere ist mir viel zu nervig, sowohl eintragen wie finden. Ein guter Workaround führt schneller zu Ergebnis.

Ergänzung: das Zerschießen der Einstellungen läßt sich auch erreichen, wenn ein gesichertes Import-Einstellungsdokument *.4si geladen wird. Neuanlegen hilft, doch wie lange?

Gefunden weil dieses
DOCUMENT TO BLOB($dbfPathName;$dbfPrefs_X)
IMPORT DATA($pathName;$dbfPrefs_X)
heute von jetzt auf sofort nicht mehr tat, Datensätze wurden angelegt aber alle Felder blieben leer. Der automatisierte Import lief seit Tagen.

Noch ein Vorsicht! Mit der *-Option IMPORT DATA($pathName;$dbfPrefs_X;*) erscheint der Import-Dialog. Durch das *4si-Dokument sind die Parameter voreingestellt. Wer nichts weiter macht, bekommt leere Datensätzen. Das der Import zu nix führt, könnte man an den leeren Zellen der ersten Datenzeilen bereits sehen – könnte man. Es reicht die bereits voreingestellte Tabelle noch einmal anklicken damit der Import klappt. Mehr als lästig!

4156461

Nachtrag: 5. Nov 2010 

Nicht wundern - oder doch? Der Import-Editor legt Alpha-Felder mit 80 Zeichen an statt der möglichen 255! Das kann ins Auge gehen, deswegen findet sich die Ursache so schlecht!

lieber auf deutsch

Found in September 2012 TechTips: Programmatically Import/Export Data with Settings

The Import-Editor and …

Sometimes there seems to be something new in 4D. Not really new, but looks like that, because I've not used it or given up long ago.

Import-Editor for example. Out of the box, 4D can import fixed length data or CSV.

Fixed length means: spaces fill up to max. length of field or zeros fill up numbers to the left. DBF is one of those ancient formats.

CSV is such a non-standard, its just annoying like all those types of SQL-dumps.

fixedlength

A screenshot of 4D V2004. Didn't change much in V12.

Usually I don't think about Import-Editor. As I said: long given up on that. I've code to read in chunks of 30 KB and then parse the incoming text myself. Sometimes importing is easy or my code is much to slow. Then it's time for Import-Editor but if there weren't …

… those deficiencies

Nobody seems to be in charge for Import-Editor any more.

V12 Import-Editor is still the same as known from last century. Still true is

  • If I've arranged which column to store in which field
  • 4152243 changing import-option start at line 1 to start at line 2
  • kills all the carefully arrangements.
4152245 That's obvious and every guy eating his own dogfood would have seen that and fixed the bug. Would she?

Entering a bug in bug-base is much to hinderous. I'm usually faster finding a workaround.

You can achieve the same results, when opening a saved Import-document *.4si – same dogfood.

I found the misbehaviour when
DOCUMENT TO BLOB($dbfPathName;$dbfPrefs_X)
IMPORT DATA($pathName;$dbfPrefs_X)
didn't work as expected but created empty records. Recreating helps for the moment.

Another caveat concerning *-Option!
After IMPORT DATA($pathName;$dbfPrefs_X;*) the import-dialog is presented. The *.4si-docment does arrange the import-options for me. Nice, isn't it? Now hitting import does create empty records. I could have seen this, because the first lines from the import-document are shown empty. All you have to remember is selecting the already selected table-popup once. If you like touching, it might get a funny worksession.

4156461

Nachtrag: 5. Nov 2010 

One more thing! Import-Editor creates alpha-fields of length 80 instead of 255, which is the default since V11. You are wondering about missing characters, finding out too late.