Strona 1 z 1

Import danych z pliku txt do calca

: wt sty 03, 2012 1:02 pm
autor: wicy
Mam plik tekstowy będący pomostem wymiany danych między excelem a OO. Innego sposobu nie znalazłem a wymiana excel-excel działa poprawnie.
Gorzej z wymianą danych excel->txt->OO. Excel zapisuje dane z wierszy tabeli do pliku tekstowego rozdzielanego ";". Odczyt linni pliku odbywa się w obu programach tymi samymi instrukcjami

Kod: Zaznacz cały

Do While Not EOF(1)
    Line Input #1, fields
...
Problem w tym, że excel inaczej odczytuje dane niż OO. Pola tabeli źródłowej w formacie tekstowym, zawierające łamanie linii w komórce, zapisywane są w pliku tekstowym z łamaniem linii (chr(13)). Excel do "fields" wczytuje poprawnie całą linię, jakby ignorując pojedyncze #13, natomiast OO wczytuje linię tylko do pierwszego #13.
Dla przykładu, coś co w pliku tekstowym wygląda tak:

Kod: Zaznacz cały

x;y;z;Janek Zenek Zdzisiek;x;y;z;
gdzie "Janek Zenek Zdzisiek" zapisane są w źródłowym excelu z łamaniem linii w komórce, w pliku tekstowym wygląda tak:

Kod: Zaznacz cały

x;y;z;Janek
 Zenek
 Zdzisiek;x;y;z;
Excel wczytuje pełną linię a OO wczytuje tylko : x;y;z;Janek

Jak sobie z tym poradzić?

Re: Import danych z pliku txt do calca

: wt sty 03, 2012 7:35 pm
autor: Jan_J
Mam nadzieję, że Excel wpisuje do pliku ograniczniki tekstu. Bez nich będzie trudno wytłumaczyć Calcowi, że koniec wiersza nie oznacza końca czytania.
Przy tym użycie niskopoziomowego Line Input oznacza konieczność oprogramowania formatu samemu. Ja bym raczej użył filtra importu z plików znakowych, który takie możliwości ma wbudowane.

http://wiki.services.openoffice.org/wik ... er_Options

Re: Import danych z pliku txt do calca

: wt sty 03, 2012 10:06 pm
autor: wicy
Dzięki, ale to chyba jednak za bardzo dla mnie skomplikowane. Poradziłem sobie w ten sposób, że przez zapisem do txt z excela, tam gdzie mogą wystąpić "łamane" stringi, dałem linijkę:

Kod: Zaznacz cały

replace(zapisywany_string, chr(10), "[enter]", 1, -1)
OO odczytuje prawidłowo linijki a potem podmienia [enter] na łamanie linii ;) Prościej chyba nie potrafię.

Re: Import danych z pliku txt do calca

: śr sty 04, 2012 9:48 pm
autor: Jan_J
Też OK, o ile fraza [enter] nie wystąpi w danych. Ja bym pisał \\ lub <br/>, ale to nic nie znaczący szczegół.