Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Rozhodovací konstrukce if do bashe/mono  (Přečteno 1963 krát)

sunamo

  • Návštěvník
  • Příspěvků: 13
    • http://sunamo.aspone.cz
Rozhodovací konstrukce if do bashe/mono
« kdy: 09 Listopadu 2009, 14:41:23 »
Dobrý den, narazil jsem na jeden malý problém. Převedl jsem všechny soubory na kodování UTF8 z fixního cp1250. 95% souborů se převedlo správně, ale některé ne, protože již byly v utf8 a linux to nepoznal. Prosím poraďte jak do některého z těchto kodu vložit konstrukci aby se soubor nepřeváděl pokud je již v UTF8. Našel jsem na zdejším foru tento bash:

Kód: [Vybrat]

Kód: [Vybrat]
#!/bin/sh
for prom in `ls`
do
  if [ $prom != $0 ]
  then

  if [ -f $prom ]
  then

  pom=`echo tmp_$prom`
  iconv -f iso-8859-2 -t utf-8 $prom -o $pom
  mv $pom $prom

  fi
  fi
done

A toto je můj v mono:
Kód: [Vybrat]
string ds = "/home/sunamo/Projects/SomeExperiments/a";
string[] soub = Directory.GetFiles(ds, "*.cs", SearchOption.AllDirectories);
foreach (string var in soub) {
string c = Path.GetDirectoryName(var);
Directory.SetCurrentDirectory(c);
string s = Path.GetFileName(var);
Process.Start("cstocs", "-i 1250 utf8 " + s);
}

A taky jaké utility slouží k zjištění kodování: http://www.abclinuxu.cz/poradna/linux/show/164672;jsessionid=jha74th2wio7 . Nejsem líný, budu na tom ještě pracovat, jen se ptám, protože linux určitě bude logičtější než windows a hledal bych chyby jinde než jsou. Každou pomoc vítám.

Toto je poslední věc, kterou potřebuji, abych mohl na linuxu normálně fungovat. :)
http://sunamo.aspone.cz
<a href="http://sunamo.aspone.cz" title="sunamo.aspone.cz - programování, C#, ASP.NET, Články, blog">sunamo.aspone.cz - programování</a>

MacHala

  • Stálý člen
  • **
  • Příspěvků: 1104
  • Big Bro iz watching joo!
    • ZlejT
Re: Rozhodovací konstrukce if do bashe/mono
« Odpověď #1 kdy: 09 Listopadu 2009, 18:06:36 »
melo by ti uplne stacit
Kód: [Vybrat]
enconv $prom - enca umi detekovat aktualni kdovani, takze by se ti to nikde zmrsit nemelo... (kdyztak si precti zacatek "man enca")

A taky jaké utility slouží k zjištění kodování: http://www.abclinuxu.cz/poradna/linux/show/164672;jsessionid=jha74th2wio7
tuhle otazku nechapu - jestli se ptas jakym zpusobem ty programy, ktere jsou zminovany na te diskusi, co jsi linkoval (enca a file), uvnitr funguji, tak se radeji podivej primo do zdrojovych kodu...
Prislusnik ligy, za kreativni pouzivani interpunkcnich znamenek, carek, predevsim.
=======================================
Tweetuju jako http://twitter.com/zl8

sunamo

  • Návštěvník
  • Příspěvků: 13
    • http://sunamo.aspone.cz
Re: Rozhodovací konstrukce if do bashe/mono
« Odpověď #2 kdy: 10 Listopadu 2009, 23:07:19 »
Na původní otázku jsem našel řešení, ale trochu nedokonalé. Zda soubor je v utf8 zjistím příkazem file -i a parsací výstupu. Proto nepotřebuji "enca". To spolehlivě funguje. Užívám utility recode ebo cstocs. Při každé ale mi to začne u konce "", což by někdo řekl že mi linux nedovolí spouštět tolik procesů, ale děje se to i na malém vzorku, leč jen v jedné složce. Navíc když si najdu všechny soubory v hledání, tak jich je 9500, ale mono jich přes Directory.GetFiles s SearchOption.AllDirectories, tak jen 9000(vše je zaokrouhleno a vždy hledám jen na přípony .cs). Nevím jestli ten zbytek jsou skryté soubory nebo jaké, teď to neřeším, nicméně v té špatné složce mě to vždy najde všechno.

K těm utilitám - recode nebo cstocs fungují perfektně, jen se nesmí užít na soubor který již je v UTF8. Perfektně v příkazovém řádku, protože když spouštím recode/cstocs přes Process.Start, hází mi to chyby "CreateProcess: error creating process handle". Děje se to jen na určitých souborech a to je teď můj akt. problém. Nevím jak v monu když se vyskytne Exception říct aby to přeskočil a šel dál. teď jsem provedl test, 1/3 těch souborů jsem dal pryč, do výstupu počítám kolik souborů bylo uděláno.U mě zhruba u 200 začínají nějaké soubory které už jsou v UTF8, proto tu nevypisuji názvy. A zde je moje domněnka co by to mohlo způsobovat a jak to řešit. Souborů které byly v UTF8 a byly za sebou bylo dříve tak max 15. tu jich je (již z výpisu tak 25. To je jedna verze proč se mi vyhazují chyby "WARNING **: CreateProcess". Zřejmě buď limit linuxu(např. proti virům) nebo příkaz file ještě pracuje a nemohu ho zavolat znovu. Řešení je pozastavit vlákno třeba na 0,5s, vyzkouším. Jen se bojím to času, kdyby těch 0.5s zabralo, tak na těch 0,5s by to vzalo 75 minut bez režie.)

Výpis prvních chyb které nastanou:
Kód: [Vybrat]
265
266
267
268
269
270
271
272
/home/sunamo/a/Form/Hotovo/Blog/Blog/Třídy/PanelUpravEventArgs.cs
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle
/home/sunamo/a/Form/Hotovo/Blog/Blog/Třídy/Kolekce/VlastniKolekce.cs

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle
291

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle
/home/sunamo/a/Form/Hotovo/Blog/Blog/Třídy/Kolekce/Řádky.cs

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle
292

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle
/home/sunamo/a/Form/Hotovo/Blog/Blog/UCPanely/ITextBox.cs

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle
293

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle
/home/sunamo/a/Form/Hotovo/Blog/Blog/UCPanely/PanelGraf.Designer.cs

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle
294

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle
/home/sunamo/a/Form/Hotovo/Blog/Blog/UCPanely/PanelGraf.cs

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle
295

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle
/home/sunamo/a/Form/Hotovo/Blog/Blog/UCPanely/PanelObrázek.Designer.cs

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle
296

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle
/home/sunamo/a/Form/Hotovo/Blog/Blog/UCPanely/PanelObrázek.cs

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle
297

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle


/home/sunamo/a/Form/Hotovo/Blog/Blog/UCPanely/PanelPisma.Designer.cs


** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle
298

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle


/home/sunamo/a/Form/Hotovo/Blog/Blog/UCPanely/PanelPisma.cs


** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

299

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle
/home/sunamo/a/Form/Hotovo/Blog/Blog/UCPanely/PanelTabulka.Designer.cs

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle
300

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: _wapi_handle_unref: Attempting to unref unused handle 0x3c1f70

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: _wapi_handle_unref: Attempting to unref unused handle 0x1171a0
Stacktrace:

  at (wrapper managed-to-native) System.Diagnostics.Process.Process_free_internal (intptr) <0x00004>
  at (wrapper managed-to-native) System.Diagnostics.Process.Process_free_internal (intptr) <0xffffffff>
  at System.Diagnostics.Process.Dispose (bool) <0x0004a>
  at System.Diagnostics.Process.Finalize () <0x00010>
  at (wrapper runtime-invoke) System.Object.runtime_invoke_void__this__ (object,intptr,intptr,intptr) <0xffffffff>

Native stacktrace:

/usr/bin/mono [0x806d944]
/usr/bin/mono [0x808616b]
[0xb7ee8410]
/usr/bin/mono [0x814e6a6]
[0xb71dea89]
[0xb71de9d3]
[0xb71de959]
[0xb71de8e1]
/usr/bin/mono [0x80d5559]
/usr/bin/mono [0x8178771]
/usr/bin/mono [0x80d574c]
/usr/bin/mono [0x80f7639]
/usr/bin/mono [0x81653b6]
/usr/bin/mono [0x8183355]
/lib/tls/i686/cmov/libpthread.so.0 [0xb7df34ff]
/lib/tls/i686/cmov/libc.so.6(clone+0x5e) [0xb7d4849e]

Debug info from gdb:

(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 0xb7c306e0 (LWP 10232)]
[New Thread 0xb7477b90 (LWP 10236)]
[New Thread 0xb786db90 (LWP 10233)]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
0xb7ee8430 in __kernel_vsyscall ()
  3 Thread 0xb786db90 (LWP 10233)  0xb7ee8430 in __kernel_vsyscall ()
  2 Thread 0xb7477b90 (LWP 10236)  0xb7ee8430 in __kernel_vsyscall ()
  1 Thread 0xb7c306e0 (LWP 10232)  0xb7ee8430 in __kernel_vsyscall ()

Thread 3 (Thread 0xb786db90 (LWP 10233)):
#0  0xb7ee8430 in __kernel_vsyscall ()
#1  0xb7dfa8f6 in nanosleep () from /lib/tls/i686/cmov/libpthread.so.0
#2  0x081492e8 in ?? ()
#3  0xb7df34ff in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#4  0xb7d4849e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 2 (Thread 0xb7477b90 (LWP 10236)):
#0  0xb7ee8430 in __kernel_vsyscall ()
#1  0xb7dfa0fb in read () from /lib/tls/i686/cmov/libpthread.so.0
#2  0x0806da5e in ?? ()
#3  0x0808616b in ?? ()
#4  <signal handler called>
#5  0x0814e305 in ?? ()
#6  0x0814e6a6 in ?? ()
#7  0xb71dea89 in ?? ()
#8  0xb71de9d3 in ?? ()
#9  0xb71de959 in ?? ()
#10 0xb71de8e1 in ?? ()
#11 0x080d5559 in ?? ()
#12 0x08178771 in ?? ()
#13 0x080d574c in ?? ()
#14 0x080f7639 in ?? ()
#15 0x081653b6 in ?? ()
#16 0x08183355 in ?? ()
#17 0xb7df34ff in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#18 0xb7d4849e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 1 (Thread 0xb7c306e0 (LWP 10232)):
#0  0xb7ee8430 in __kernel_vsyscall ()
#1  0xb7df9e1c in __lll_unlock_wake () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb7df64bb in _L_unlock_94 () from /lib/tls/i686/cmov/libpthread.so.0
#3  0xb7df60cc in __pthread_mutex_unlock_usercnt ()
   from /lib/tls/i686/cmov/libpthread.so.0
#4  0x0814b271 in ?? ()
#5  0x08149e1e in ?? ()
#6  0x080d4f83 in ?? ()
#7  0x0817aa7a in ?? ()
#8  0x0817ad53 in ?? ()
#9  0x080b80bf in mono_array_new_specific ()
#10 0xb786e89a in ?? ()
#11 0xb78770a5 in ?? ()
#12 0xb7876ea2 in ?? ()
#13 0xb787a7e5 in ?? ()
#14 0xb7879f68 in ?? ()
#15 0xb7879186 in ?? ()
#16 0xb7879065 in ?? ()
#17 0xb7878ff7 in ?? ()
#18 0xb786e47f in ?? ()
#19 0xb786e1b3 in ?? ()
#20 0x080bad75 in mono_runtime_exec_main ()
#21 0x080bb4eb in mono_runtime_run_main ()
#22 0x0805c917 in mono_main ()
#23 0x0805ac62 in ?? ()
#24 0xb7c7a775 in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6
#25 0x0805aba1 in ?? ()
#0  0xb7ee8430 in __kernel_vsyscall ()
/home/sunamo/a/Form/Hotovo/Blog/Blog/UCPanely/PanelTabulka.cs
301

Pak se pár souborů převede(301-321) a znovu začnou vyskakovat výjimky

Kód: [Vybrat]
320
/home/sunamo/a/Form/Hotovo/Blog/Blog/v/SpecialniSlozky.cs
321
/home/sunamo/a/Form/Hotovo/Blog/Blog/v/TypNastavení.cs
322

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle
/home/sunamo/a/Form/Hotovo/Blog/Blog/v/VšechnyOP.cs

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle
323

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle
/home/sunamo/a/Form/Hotovo/CSharpAntivirus/VirusCollector/Form1.Designer.cs

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle
324

** (/home/sunamo/ZměnaKodování/ZměnaKodování/bin/Debug/ZměnaKodování.exe:10232): WARNING **: CreateProcess: error creating process handle

A to je poslední řádek který mi program vyhodí. Dál nepokračuje, proces lze jen stopnout. Dal jsem celý kod pro jeden soubor do try klazule, buď takto
Kód: [Vybrat]
try
{}
catch
{}

Nebo takto:
Kód: [Vybrat]
try
{}
catch(Exception ex)
{}

To ale nemá význam, program stejně ani do jedné z výjimek nikdy nespadne.  I s tímhle počítám, protože těžko říct co za tím vězí, práva mám nastavené na vše 777 a jinak mě nic jiného nenapadá, ale už jsem poučen, že nikdy nevím vše a vždy mohu čekat něco s čím jsem se nesetkal zatím.

Celý můj kód vypadá takto:
Kód: [Vybrat]
public static void Main(string[] args)
        {
            bool kon = false;
            string ds = "/home/sunamo/proj/Projects/Projects/";
            ds = "/home/sunamo/proj/Projects/Projects/SomeExperiments/Copy (2) of temp-úsp ale jen temp/temp2/temp2";
            ds = "/home/sunamo/a";
            string[] soub = Directory.GetFiles(ds, "*.cs", SearchOption.AllDirectories);
            bool neost = false;
            Console.WriteLine(soub.Length.ToString());
            int i = 0;
            if (neost)
            {
               
                foreach (string var in soub) {
                Console.WriteLine(var);
                }
            }
            else
            {
                foreach (string var in soub)
                {
                try
                {
                    Process ces = new Process();
                    ces.StartInfo.FileName = "file";
                    ces.StartInfo.Arguments = " -i " + var;
                    ces.OutputDataReceived += delegate(object sender, DataReceivedEventArgs e)
                    {
                        //string sd  = e.Data;

                    };

                    ces.StartInfo.UseShellExecute = false;
                    ces.StartInfo.RedirectStandardOutput = true;
                    ces.Start();
                    //ces.StandardOutput = new StreamReader(new MemoryStream());
                    string sd = ces.StandardOutput.ReadToEnd();
                    if (sd.ToLower().Contains("utf"))
                    {
                        kon = false;
                        //Console.WriteLine("K0");
                    }
                    else
                    {
                        kon = true;
                        //Console.WriteLine("OK");
                    }
                   
Console.WriteLine(var);
                    if (kon)
                    {
                        string c = Path.GetDirectoryName(var);
                        Directory.SetCurrentDirectory(c);
                        string s = Path.GetFileName(var);
                        //
                        Process.Start("cstocs", "-i 1250 utf8 " + s);
                    }
                    }
                    catch(Exception ex)
                    {
                    Console.WriteLine(ex.Message);
                    }
                    Console.WriteLine(i.ToString());
                    i++;
                }
            }
            Console.WriteLine("Hotovo");
        }

Odkaz jsem tu dával jen pro případ, kdyby někdo věděl jak klazuli if přidat, ale nevěděl které programy jsou pro zjištění kódování. Vím že taková pravděpodobnost je malá, ale přece. U enconv jsem ale nepochodil - když spustím skript s příkazem enconv $prom,tak mi vypíše u každého souboru
Kód: [Vybrat]
enconv: Cannot determine (or understand) your language preferences.
Please use `-L language', or `-L none' if your language is not supported
(only a few multibyte encodings can be recognized then).

Když v terminálu zadám
Kód: [Vybrat]
enconv -L cs -x utf8 -c ko.cs
tak se soubor ještě více zmrší, hlavička metody pak vypadá třeba takto:
Kód: [Vybrat]
public static  void Pď‚"'"č„'"...(TM)idej(string d2)
Nechci tím říct, že enconv je špatný, jen na moje soubory nějak nefunguje. takže abych to shrnul, jsou tu 2 roviny řešení:
1)Neznámá chyba na souborech - donutit mono to hned přeskočit nebo to zkusit s spánkem vlákna
2)Známá chyba na souborech - opravit přímo

Vďaka za pomoc. :-[
http://sunamo.aspone.cz
<a href="http://sunamo.aspone.cz" title="sunamo.aspone.cz - programování, C#, ASP.NET, Články, blog">sunamo.aspone.cz - programování</a>

sunamo

  • Návštěvník
  • Příspěvků: 13
    • http://sunamo.aspone.cz
Re: Rozhodovací konstrukce if do bashe/mono
« Odpověď #3 kdy: 10 Listopadu 2009, 23:20:00 »
Hledání na Googlu na tuto chybu řekne to co jsem tu napsal - 4 stránky: http://lists.ximian.com/pipermail/mono-bugs/2006-August/045410.html
Přesná je tato:
http://lists.ximian.com/pipermail/mono-bugs/2006-August/045410.html
Tam píšou chyba v 1.1 , Já mám samozřejmě nejnovější Mono 2.0.

Samozřejmě by se nečekalo pokud by nebyl v UTF8.  Je těžké určit po kolika souborech nastane dead. Když není žádný v unicode, tak po 150 je konec. Takže 9000/150= 60 balíčků :/ teď jen napsat kód na jejich rozdělení.
« Poslední změna: 11 Listopadu 2009, 00:03:22 od sunamo »
http://sunamo.aspone.cz
<a href="http://sunamo.aspone.cz" title="sunamo.aspone.cz - programování, C#, ASP.NET, Články, blog">sunamo.aspone.cz - programování</a>

 

Provoz zaštiťuje spolek OpenAlt.