Autor Zpráva
maxmin
Profil *
Zdravím všechny.

Neznáte někdo co nejjednodušší prográmek (nebo nedokážete ho napsat), který by
1) otevřel soubor x.txt
2) nahradil určité řetězce
3) uložil ho jako y.txt
a vše aby se dalo nakonfigurovat nejlépe do nějakého .ini souboru

Našel jsem pár programů, které umí dávkové zpracování souborů, ale žádný nefungoval přesmě podle mých představ.

Pokud by mi to někdo naprogramova, samozřejmě mu to zaplatím. Zkušený programátor to napíše do10 min..
imploder
Profil
V PHP:
$x = file_get_contents("x.txt"); // načtení souboru x.txt
$x = ereg_replace("puvodni_retezec", "novy_retezec", $x); // nahrazení výskytů "puvodni_retezec" za "novy_retezec"
$x = ereg_replace("motor", "rotor", $x); // vyměnit motor za rotor
$x = ereg_replace("prezident", "čabajka", $x); // čabajka for prezident
/* ...atd... */
$y = fopen("y.txt", "w"); // zápis do y.txt od začátku (pokud není, vytvoří se; pokud je, přepíše se)
fwrite($y, $x); // zápis změněného obsahu do y.txt
fclose($y);
maxmin
Profil *
Díky moc za odpověď. V PHP bych to taky zvládnul, ale potřebuji to na lokálním počítači jako .exe :-(

Vlastně jde o to, že v účetnictví stormware pohoda vyexportuju XML soubor se sklady. Ten si chci převézt do .csv pomoci XSLT.
Pohoda má asi nějaký divný xml parset, nebo mi něco uniká, ale nefunguje mi output method="text"
Výsledný kód je pak:
<html>
"abcd","123"
"abcd","123"
"abcd","123"
"abcd","123"
</html>

Potřebuji se zbavit toho html.
XSLT šablona:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rsp="http://www.stormware.cz/schema/response.xsd" xmlns:rdc="http://www.stormware.cz/schema/documentresponse.xsd" xmlns:typ="http://www.stormware.cz/schema/type.xsd" xmlns:lst="http://www.stormware.cz/schema/list.xsd" xmlns:acu="http://www.stormware.cz/schema/accountingunit.xsd" xmlns:inv="http://www.stormware.cz/schema/invoice.xsd" xmlns:vch="http://www.stormware.cz/schema/voucher.xsd" xmlns:int="http://www.stormware.cz/schema/intDoc.xsd" xmlns:stk="http://www.stormware.cz/schema/stock.xsd" xmlns:ord="http://www.stormware.cz/schema/order.xsd" xmlns:ofr="http://www.stormware.cz/schema/offer.xsd" xmlns:enq="http://www.stormware.cz/schema/enquiry.xsd" xmlns:vyd="http://www.stormware.cz/schema/vydejka.xsd" xmlns:pri="http://www.stormware.cz/schema/prijemka.xsd" xmlns:pre="http://www.stormware.cz/schema/prevodka.xsd" xmlns:vyr="http://www.stormware.cz/schema/vyroba.xsd" xmlns:pro="http://www.stormware.cz/schema/prodejka.xsd" xmlns:adb="http://www.stormware.cz/schema/addressbook.xsd" xmlns:prm="http://www.stormware.cz/schema/parameter.xsd">

<xsl:template match="/">
<html>
<xsl:for-each select="rsp:responsePack/rsp:responsePackItem/lst:listStock/lst:stock/stk:stockHeader">
"<xsl:value-of select="stk:code"/>","<xsl:value-of select="stk:count"/>"</xsl:for-each>
</html>
</xsl:template>
</xsl:stylesheet>
maxmin
Profil *
Myslel jsem, že by mohlo fungovat:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rsp="http://www.stormware.cz/schema/response.xsd" xmlns:rdc="http://www.stormware.cz/schema/documentresponse.xsd" xmlns:typ="http://www.stormware.cz/schema/type.xsd" xmlns:lst="http://www.stormware.cz/schema/list.xsd" xmlns:acu="http://www.stormware.cz/schema/accountingunit.xsd" xmlns:inv="http://www.stormware.cz/schema/invoice.xsd" xmlns:vch="http://www.stormware.cz/schema/voucher.xsd" xmlns:int="http://www.stormware.cz/schema/intDoc.xsd" xmlns:stk="http://www.stormware.cz/schema/stock.xsd" xmlns:ord="http://www.stormware.cz/schema/order.xsd" xmlns:ofr="http://www.stormware.cz/schema/offer.xsd" xmlns:enq="http://www.stormware.cz/schema/enquiry.xsd" xmlns:vyd="http://www.stormware.cz/schema/vydejka.xsd" xmlns:pri="http://www.stormware.cz/schema/prijemka.xsd" xmlns:pre="http://www.stormware.cz/schema/prevodka.xsd" xmlns:vyr="http://www.stormware.cz/schema/vyroba.xsd" xmlns:pro="http://www.stormware.cz/schema/prodejka.xsd" xmlns:adb="http://www.stormware.cz/schema/addressbook.xsd" xmlns:prm="http://www.stormware.cz/schema/parameter.xsd">
<xsl:output method="text" />
<xsl:template match="/">

<xsl:for-each select="rsp:responsePack/rsp:responsePackItem/lst:listStock/lst:stock/stk:stockHeader">
"<xsl:value-of select="stk:code"/>","<xsl:value-of select="stk:count"/>"</xsl:for-each>

</xsl:template>
</xsl:stylesheet>

ale když do souboru přidám element <xsl:output method="text" />, přestane ho pohoda generovat. Stejně tak když odstraním <html> a </html>
nightfish
Profil
Díky moc za odpověď. V PHP bych to taky zvládnul, ale potřebuji to na lokálním počítači jako .exe :-(
stáhni si sed, ten to bude umět
maxmin
Profil *
Díííky moc, je to dokonalé.

Kdyby to někdo v budoucnu potřeboval, první a poslední řádek smažu z příkazového řádku takhle:
sed.exe -e "$d" -e "1d" puvodnisoubor.txt > novysoubor.txt

Vaše odpověď

Mohlo by se hodit

Příspěvky nesouvisející s webem budou odstraněny.

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: