Vytvoreni xml z textoveho souboru - nejsnadnejsi zpusob?
Ahoj,
chtel jsem pozadat o nakop, v cem by bylo nejsnadnejsi zrealizovat toto:
- mam textove soubory ve formatu:
G0010 12169.000000000 4397.062500000 -800143.000000000 -1131261.503906000 595.693000000
G0008 10870.500000000 11456.468800000 -801458.250000000 -1135380.219000000 550.239000000
G0009 10429.000000000 36643.875000000 -803682.500000000 -1150296.000000000 695.614000000
...
- potrebuji tato cisla nasoukat do xml tagu (pro kazdy radek z textaku):
<Control_Point_Data>
<Control_Point_ID>G0010</Control_Point_ID>
<Control_Point_X_Value>-800143.000000000</Control_Point_X_Value>
<Control_Point_Y_Value>-1131261.503906000</Control_Point_Y_Value>
<Control_Point_Z_Value>595.693000000 </Control_Point_Z_Value>
</Control_Point_Data>
No napada mne zneuzit utrzky z http://pc.poradna.net/question/view/125870-cteni-a- zapis-z-do-externiho-souboru-na-www-strance a trochu se potrapit s JavaScriptem, ale chtel jsem se zeptat, zda by nebylo bezbolestnejsi reseni.
Dekuju za rady, M.
Ten textový soubor bych naimportoval do Excelu a pak našel na internetu konvertor z XLS na XML... Koukal jsem Googlem a něco takovýho existuje.
Sloupce v texťáku jsou tvořeny mezerama? Nebo tabulátory?
Kdybys s tím nemohl hnout, napsal bych ti php skriptík na převod.
Technicky čistým řešením by bylo použít transformaci XML pomocí XSLT.
Ok, zkusim to cestou Excelu + konvertoru. V textaku jsou tabulatory.
Za php nabidku moc diky, zkusim to nejdriv sam, a kdybych s rannim kuropenim nebyl hotov, ozvu se. Dovol male vyzvidani - v tom php bys pouzil nejake specialni xml knihovnicky, nebo bys pracoval jen s retezci?
Diky! M.
V php bych nejspíš použil primitivní čtení souboru pomocí cyklu while a klasické funkce.
Ja by som si na to vybral C++ alebo C#. Ale je to úloha, na ktorú si môžeš zvoliť takmer ktorýkoľvek jazyk, napr. JavaScript:
Bylo mi jasný, že jakmile si tenhle thread přečte los, mám po kšeftu.
Clovece lose (lze li to tak rici), ty musis mit nejaky budicek na tyhle dotazy tykajici se programovani. At uz jsou to VB, VBA makra v MS Office ci takoveto vymysly, jako ted ja, asi uz ty kody mas predpripraveny nebo vimjaco. No nechci nikomu lizt do zadku, ale mate muj obdiv (vcetne tacuda, hosta a asi i dalsich, kteri jiz nejednou takhle promptne a "na zakazku" pomohli).
M.
Připojím se s JScriptem
Počítá se s tím že ten soubor s daty se jmenuje "source.txt" a data jsou oddělené tabelátorem. <?xml... a další věci už není problém přidat.
No take diky , tak jeste C++, PHP, C# a budu to mit skoro vsechno...
Jeste bych mel jeden dotaz - radkem:
definujes oddelovnik - "9" je kod pro tabulator, pokud by v souboru byly mezery, dalo by se tam "32"?
Dikanc, M.
C# a PHP bych dal, s C++ to bude horší Tohle mi přije dobrý v tom, že nepotřebuješ kompilátor ani server s PHP.
Přesně, ale s mezerníkem by bylo přehlednější
Ono to tak funguje i s tabelátorem, ale vypadá to jako několik mezer tak jsem radši zvolil zápis kódem.
Dekuju za odpoved. Tak jeste dovol jeden dotaz - pokud tam misto tabulatoru jsou mezery (coz jsem na zacatku uvedl chybne), navic tak, ze sloupce nejsou oddeleny jednou mezerou, ale ruznym poctem - lze toto nejak eliminovat?
M.
Jo, pomocí regulárního výrazu nahradit libovolný počet mezer jedním znakem - třeba jednou mezerou. To dám dohromady jen co si zopakuju regulární výrazy, jak sem s nima dlouho nedělal tak se mi to vykouřilo.
.
M.
replace(/ +/g,";") každá sekvence minimálně jedné a maximálně neomezeného počtu mezer, bude nahrazeno středníkem
split(";") rozdelí řádek podle středníků
Super. Dovolil jsem si tam malou upravu v tom regularnim vyrazu (pouzil jsem vyraz losa), protoze
diky mezere na zacatku radku vlozilo i strednik na zacatek a tagy byly vuci textu o jedno posunute.
Takto to funguje k me spokojenosti:
Jeste jednou vsem velice dekuji + + .
M.
Jo oni jsou ještě mezery na začátku. Tak ty jsem při ukládání ke mě do souboru nekompromisně odstranil :)