Přidávání hodnot do souboru

Od: Datum: 25.12.12 13:27 odpovědí: 10 změna: 26.12.12 14:18
avatar

Dobrý den,

Potřeboval bych poradit jestli by nešlo pomocí nějakého souboru udělat aby do jiného souboru napsal něco na učitý řádek a sloupec. Napadlo mě jestli by to nešlo udělat přes nějaký dávkový soubor ale opravdu si s tím nevím rady a tak se Vás ptám.

Děkuji.


Seznam odpovědí:
 
moment čekejte prosím, probíhá přenos dat...
Zobrazení struktury odpovědí v otázce
Skrytí struktury odpovědí v otázce
Zobrazení struktury odpovědí v otázce

 

Odpovědi na otázku:
Od: sheba*
Datum: 25.12.12 14:04

Dobry den,

o jaky typ souboru se jedna (popr. cim jsou oddelene sloupce?)? A jaky operacny system pouzivate?

Ohodnoceno: 0x
 
Datum: 25.12.12 14:52
avatar

Operační systém mám Windows XP. Chci si udělat tokový prográmek v CzRopaAutorurnu - http://www.slunecnice.cz/sw/czropa-autorun/

Konfigurace a vůbec vše co si tam naklikám se uloží so souboru něco.aut. Už jsem si je otevíral v PSpadu a nevypadají moc složitě.

Potřeboval bych aby když se do toho mého programu něco doinstaluje aby tam něco (nějaký ten soubor) na konci instalace připsal do toho souboru .aut objekt (např tlačítko) kterým by se ta doinstalovaná část dala spustit.

Doufám že aspoň tak nějak chápete co tím chci říct.

Od: sheba*
Datum: 25.12.12 15:00

ja vetsinou pouzivam http://unxutils.sourceforge.net/

pomoci gawk muzes editovat textovy soubory ( i sloupce).

Navodu najdes na internetu plno...

Ohodnoceno: 0x
 
Datum: 25.12.12 15:50
avatar

Takže jsem si to stáhnul a hledal jsem návody na to gawk místo toho mi ale google našel toto: http://www.abclinuxu.cz/clank…troje-9-sed-nahrazovani-textu Ovšem tam píší o Nahrazování textu ja ovšem potřebuji aby to nenahrazovalo ale pouze přidávalo napřklad aby to mezi 4 a 5 řádek napsalo několik řádků kódu

Zkrátka potřebuji aby když tam něco k tomu programu doinstaluju aby se to projevilo v tom programu jako nová možnost

Napadlo mne jestli by to nešlo uplně jiným způsobem například že by ten program v sobě nejak graficky zobrazoval obsah složky ve které by byly soubory které by to spouštělo a nic vím mi nejde akorát mne nenapadá jak to udělat... Už jsem se ptal i autora CzRopa Autorunu bohužel jsem se nic kloudného nedozvěděl.

Od: sheba*
Datum: 25.12.12 15:56

Zkus semka dat nejaky priklad souboru a toho co v nem chces udelat..

Ohodnoceno: 0x
 
Datum: 25.12.12 16:24
avatar

Rekněme mám soubor Autorun.aut ze ketrého načítá program zdrojový kód.

Tady je jeho obsah:

[Options]
BaseUpLevel=0
Version=2.0.1.1
[FormAutorun]
Caption=Můj program
BorderStyle=1
ClientWidth=494
ClientHeight=468
WinState=0
Color=-1
ImageRandom=0
ImageFile=pozadi.jpg
Shape=0
Radius=20
FadeEffect=0
FadeSpeed=500
AutoAnswCtrl=
Time=10
TimeDisplay=
TimeDisplayFmt=
MPDisplay=
MPAutoOpen=1
MPAutoPlay=1
MPAutoClose=1
MPRepeat=0
MPFile=
[Components]
item0=XAOLBtn_1
XAOLBtn_1.classname=TXAOLBtn
item1=XAOLBtn_2
XAOLBtn_2.classname=TXAOLBtn
item2=XAOLBtn_3
XAOLBtn_3.classname=TXAOLBtn
item3=XLabel_1
XLabel_1.classname=TXLabel
item4=XAOLBtn_4
XAOLBtn_4.classname=TXAOLBtn
item5=XAOLBtn_5
XAOLBtn_5.classname=TXAOLBtn
item6=copyright
copyright.classname=TXLabel
[XAOLBtn_1]
Parent="FormAutorun"
Caption="Hrát hry"
Anchors="3"
BorderColor="4605510"
Cursor="0"
Color="-1"
Font.Name="Arial"
Font.Style="1"
Font.Color="10840372"
Font.Size="8"
Font.Charset="1"
Left="109"
Top="91"
Height="36"
Width="283"
FormMove="0"
Enabled="1"
Visible="1"
[XAOLBtn_2]
Parent="FormAutorun"
Caption="Nainstalovat hry"
Anchors="3"
BorderColor="4605510"
Cursor="0"
Color="-1"
Font.Name="Arial"
Font.Style="1"
Font.Color="10840372"
Font.Size="8"
Font.Charset="1"
Left="109"
Top="137"
Height="36"
Width="283"
FormMove="0"
Enabled="1"
Visible="1"
[XAOLBtn_3]
Parent="FormAutorun"
Caption="Odinstalovat hry"
Anchors="3"
BorderColor="4605510"
Cursor="0"
Color="0"
Font.Name="Arial"
Font.Style="1"
Font.Color="10840372"
Font.Size="8"
Font.Charset="1"
Left="109"
Top="184"
Height="36"
Width="283"
FormMove="0"
Enabled="1"
Visible="1"
[XLabel_1]
Parent="FormAutorun"
Caption="Hlavní menu"
Anchors="3"
BorderWidth="1"
Border="0"
BorderColor="0"
Cursor="0"
Transparent="1"
Shape="0"
Radius="20"
Color="8421504"
TLColor="16744448"
RBColor="8421504"
ShadowColor="8421504"
ShadOfX="-2"
ShadOfY="2"
Font.Name="MS Sans Serif"
Font.Style="0"
Font.Color="16711680"
Font.Size="24"
Font.Charset="1"
Left="155"
Top="15"
Height="41"
Width="181"
Alignment="2"
Layout="0"
AutoSize="1"
WordWrap="0"
Effect3D="1"
EffectShadow="0"
FormMove="0"
Enabled="1"
Visible="1"
[XAOLBtn_4]
Parent="FormAutorun"
Caption="Nastavení"
Anchors="3"
BorderColor="4605510"
Cursor="0"
Color="-1"
Font.Name="Arial"
Font.Style="1"
Font.Color="10840372"
Font.Size="8"
Font.Charset="1"
Left="109"
Top="260"
Height="36"
Width="283"
FormMove="0"
Enabled="1"
Visible="1"
[XAOLBtn_5]
Parent="FormAutorun"
Caption="Ukončit program"
Anchors="3"
BorderColor="4605536"
Cursor="0"
Color="26"
Font.Name="Arial"
Font.Style="1"
Font.Color="10840372"
Font.Size="8"
Font.Charset="1"
Left="109"
Top="373"
Height="36"
Width="283"
FormMove="0"
Enabled="1"
Visible="1"
[copright]
Parent="FormAutorun"
Caption="© Vojtěch Blechta"
Anchors="3"
BorderWidth="6"
Border="0"
BorderColor="0"
Cursor="0"
Transparent="1"
Shape="0"
Radius="20"
Color="-2147483633"
TLColor="16744576"
RBColor="10840372"
ShadowColor="8421504"
ShadOfX="4"
ShadOfY="4"
Font.Name="MS Sans Serif"
Font.Style="0"
Font.Color="16711680"
Font.Size="10"
Font.Charset="1"
Left="8"
Top="446"
Height="20"
Width="109"
Alignment="0"
Layout="0"
AutoSize="1"
WordWrap="0"
Effect3D="0"
EffectShadow="0"
FormMove="0"
Enabled="1"
Visible="1"
[Actions]
XAOLBtn_5.OnClick=w_Close
XAOLBtn_1.OnClick=AutLoad hry.aut
XAOLBtn_2.OnClick=AutLoad instalovat.aut
XAOLBtn_3.OnClick=AutLoad odinstalovat.aut
XAOLBtn_4.OnClick=AutLoad nastaveni.aut
________________________________________________________________________________________________

.V sekci [Componets] potřebuji přidat:

item7=tlacitko
tlacitko.classname=TXAOLBtn

. Potřebuji přidat další sekci pod sekci [components] má se jmenovat [tlacitko] do této sekce potřebuji na několik řádků neco napsat jak má objekt vypadat:

Parent="FormAutorun"
Caption="Nějaké tlačítko"
Anchors="3"
BorderColor="4605510"
Cursor="0"
Color="0"
Font.Name="Arial"
Font.Style="1"
Font.Color="10840372"
Font.Size="8"
Font.Charset="1"
Left="123456789"
Top="987654321"
Height="36"
Width="283"
FormMove="0"
Enabled="1"
Visible="1"

.Úplně na konec celého zdrojového kódu musím napsat co má prvek dělat:

XAOLBtn_4.OnClick=AutLoad dalsi_stranka.aut

______________________________________________________________________________________________

Potřebuji aby toto za mne udělal nějaký skript který by se po dokončení instalce nějakého doplňku pro ten můj program spustil v podobě nějakého spustitelného souboru/souborů

doplněno 25.12.12 17:25:

Mimochodem skusil jsem s tím SED přepsat hodnotu ahoj1 a aby se výstup uložil do souboru upraveny_soubor.txt ale když jsem se tam podíval tak bylo vše na jednom řádku a zjistil jsem že sed neumí zpracovat diakritiku.

Soubor který to mělo upravit:

ahoj0
ahoj1
ahoj2
ahoj3
ahoj4

Výstup byl:

ahoj0
Ahoj sed to p°epsal
ahoj2
ahoj3
ahoj4

_________________________________________________________________________________________________

hm, to je ale zajímavé v poznámkovém bloku je to vše na jednom řádku a na místech kde byly entery byly obdélníčky ale tady na poradte v editoru je to zase normální asi se změnilo kódování... či co...

Od: hm®
Datum: 25.12.12 18:38
avatar

Aha, takže Widle a texťák.

Možná bych to dělal úplně jinak. Je to tvůj program? Pak bych si vytvořil adresář a tam bych si dal části toho autorunu a při každé doinstalaci z nich teprv výsledný autorun sestavil, než abych rozšťourával ten existující. Příklad: Soubor AutoZac by obsahoval vše id začátku až po "[Components]" (včetně). Soubory AutoComp001 až AutoCompXXX by obsahovaly vždy odpovídající texty "[cosi] Parent=FormAutorun Caption=Nějaké tlačítko (normálně rozřádkovaný a správně formátovaný) a soubory AutoKonec001 až AutoKonecXXX by obsahovaly odpovídající texty jako třeba "XAOLBtn_4.OnClick=AutLoad dalsi_stranka.aut". Sestavovací baťák by pak Autorun složil z: AutoZac, za to by přidal všechny AutoComp***, pak by se doplnil text "[Actions]" (třeba příkazem echo "[Actions]" > > Autorun) a na konec by přidal všechny AutoKonec***. Myslím, že se dá udělat cyklus přes všechny názvy "necoXXX", takže by to jít mohlo.

doplněno 25.12.12 18:40:

Nějak kousek vypadl: "[cosi] Parent=FormAutorun Caption=Nějaké tlačítko ..." (normálně rozřádkovaný a správně formátovaný)

doplněno 25.12.12 18:44:

A ještě: za "třeba příkazem echo " má následovat [Actions] a znak odřádkování, možná to je zpětné lomítko a "n" ("n" je bez uvozovek). A pak ty dva znaky > jsou hned po sobě, bez mezery.

Ohodnoceno: 1x
 
Datum: 25.12.12 19:41
avatar

Ahá, to je dobrej nápad... Rosekat ten autorun na kousky mezi které se při doinstalaci nacpou další věci a dohromady se to zase složí, moc dobrý nápad, to by mne ani ve snu nenapadlo :D . Děkuji, Tak a mám co zkoušet...

Od: hm®
Datum: 25.12.12 14:35
avatar

Upřesni dotaz. Co myslíš tím "řádek" a "sloupec"? A co používáš za OS?

V Linuxu a pro textové soubory např. příkazy "head" (část souboru od začátku), "tail" (část souboru od konce), pomocí "echo" lze uložit nějaký text do souboru, příkaz "cat" spojuje soubory, ... Všechno lze samozřejmě normálně použít ve skriptu.

Ohodnoceno: 0x
 
Datum: 26.12.12 14:18
avatar

Skript a sed (např. z gnuwin32) s vhodně použitými regulárními výrazy to určitě zvládne. Konce řádků zachováte přepnutím do binárního módu. To možná zároveň spraví i kódování.

Další možností by bylo to udělat v něčem, co se spustí ve windows scripting hostu, tedy VBscript, Jscript, možná perl.

(Ještě bych mohl zmínit, že např. diff umí výstup uložit do souboru takovým způsobem, že sám vytvoří "záplatu"/patch, který při použití na původní soubor zapíše rozdíly, takže z toho vznikne soubor nový. Ale nevím, nakolik je tohle pro vás vhodné - jestli se vám náhodou při používání nemění proměnné atd.)

Jinak by tedy mělo stačit: Zkontrolovat, jestli přidávaný update už není nainstalovaný. Matchnout část textu od hledaného nadpisu (sekce) k další sekci nebo ke konci souboru, nahradit touto matchnutou částí + na její konec doplnit nové řádky.

Změna už existujících hodnot by byla jednoduchým nahrazením, vyhledat název a rovnítko, shoda do konce řádku, nahradit novým obsahem.

Ohodnoceno: 0x
 

 

 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz

 
Copyright © 2004-2016 Poradna Poradte.cz. Všechna práva na poradně Poradte.cz vyhrazena.