- 
 11. Data: 2013-03-16 16:32:24
 Temat: Re: PowerShell - ktos uzywa?
 Od: Piotr Chamera <p...@p...onet.pl>
 W dniu 2013-03-16 15:00, Edek Pienkowski pisze: 
 > Python nie wspiera natywnie ani WinAPI ani właściwie żadnego innego API.
 > Ma prymitywny dostęp do plików i możliwość exec-a, czyli wykonywania komend,
 > w sensie innych programów z podaniem parametrów.
 > (...)
 > Guglaj. Jeżeli ktoś zintegrował Pythona z administracją Win to ściągnij
 > lub zapłać, jeżeli nie to odpuść. Zresztą powyżej jest odpowiedź na to
 > pytanie wprost, co nie znaczy, że ktoś tego z jakiegoś powodu nie
 > próbował zrobić.
 
 Istnieje coś takiego http://sourceforge.net/projects/pywin32/
 Używam do porozumiewania się z programami przez COM (Adobe
 Illustrator, InDesign, Corel pod Win XP). Wiele programów pod
 windows udostępnia COM i bardzo fajnie się z tym pracuje. Chyba
 jest też możliwość pracy z winapi, ale nie używałem.
 
 
 
- 
 12. Data: 2013-03-16 19:54:20
 Temat: Re: PowerShell - ktos uzywa?
 Od: "M.M." <m...@g...com>
 W dniu sobota, 16 marca 2013 12:48:50 UTC+1 użytkownik Marek Borowski napisał: 
 
 > Obawiam sie ze w przypadku windows to by sie nie sprawdzilo. Powershell
 > ma ponad 3000 cmd-letow ktore nie maja zamiennika w postaci .exe. Nie
 > wydaje mi sie tez aby powstatly dekykowane bibioteki do Perla.
 > W windows 2012 kazda klikana akcja moze byc zapisana jaka ciag polecen
 > powershell. Takze jesli windows i skrypty to wybor jest klarowny.
 
 Czyli powershell to nie tylko język, ale zestaw gotowców specjalnie do
 administracji windows? Skoro tak, to Perle, Pythony itd nie będą miał
 szans. W przypadku gdy jakaś procedura naprawdę będzie wymagała
 normalnego języka programowania, to zawsze można ją napisać w C i potem
 z powershella wywołać. Hmm... ale w drugą stronę też można, logika w
 innym języku, a to co charakterystyczne dla windows w powershellu.
 Gdy mi czegoś brakowało w cmd, to pisałem programik w C++ i z pliku *.bat
 wywoływałem. Tak więc jest jeszcze możliwość połączenia dwóch języków.
 
 Pozdrawiam
 
- 
 13. Data: 2013-03-16 20:14:17
 Temat: Re: PowerShell - ktos uzywa?
 Od: Roman W <b...@g...pl>
 On Sat, 16 Mar 2013 12:23:17 +0000 (UTC), Adam Przybyla 
 <a...@r...pl> wrote:
 > ... jesli juz, pomysl o pythonie. Zastosujesz wszedzie, nie tylko
 na
 > niszowym PC. Z powazaniem
 
 Ze niby co jest niszowe, PC z Windows? Lol.
 
 RW
 
- 
 14. Data: 2013-03-16 21:39:08
 Temat: Re: PowerShell - ktos uzywa?
 Od: "R.e.m.e.K" <g...@d...null>
 Dnia Sat, 16 Mar 2013 16:32:24 +0100, Piotr Chamera napisał(a): 
 
 > Istnieje coś takiego http://sourceforge.net/projects/pywin32/
 > Używam do porozumiewania się z programami przez COM (Adobe
 > Illustrator, InDesign, Corel pod Win XP). Wiele programów pod
 > windows udostępnia COM i bardzo fajnie się z tym pracuje. Chyba
 > jest też możliwość pracy z winapi, ale nie używałem.
 
 To rzeczywiscie wyglada tak jak moje o tym wyobrazenie ;-)
 Dzieki, bede probowal ugryzc.
 
 --
 pozdro
 R.e.m.e.K
 
- 
 15. Data: 2013-03-17 00:52:03
 Temat: Re: PowerShell - ktos uzywa?
 Od: "AK" <n...@n...com>
 Użytkownik "Piotr Chamera" <p...@p...onet.pl> napisał: 
 
 > Chyba jest też możliwość pracy z winapi, ale nie używałem.
 
 Skrotowo.
 Mimo ze glowny focus w PyWinie to COM to jest tez pelne Win API.
 
 PS: Nie potrzeba nawet PyWina.
 Standardowe ctypes moze w zupelnosci wystarczyc.
 Ponizej zmodyfikowany pod ctypes przykladzik
 (uruchomi sie na standardowym Pythonie):
 
 --------------------------------------------
 
 #import win32con
 class win32con:
 NULL = 0
 CS_VREDRAW = 1
 CS_HREDRAW = 2
 IDI_APPLICATION = 32512
 IDC_ARROW = 32512
 WHITE_BRUSH = 0
 WS_OVERLAPPED = 0
 WS_CAPTION = 12582912
 WS_SYSMENU = 524288
 WS_THICKFRAME = 262144
 WS_MINIMIZEBOX = 131072
 WS_MAXIMIZEBOX = 65536
 WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED | \
 WS_CAPTION | \
 WS_SYSMENU | \
 WS_THICKFRAME | \
 WS_MINIMIZEBOX | \
 WS_MAXIMIZEBOX)
 CW_USEDEFAULT = -2147483648
 SW_SHOWNORMAL = 1
 WM_PAINT = 15
 WM_CLOSE = 16
 WM_DESTROY = 2
 DT_SINGLELINE = 32
 DT_CENTER = 1
 DT_VCENTER = 4
 
 import sys
 import ctypes as ct
 from ctypes import windll as win
 
 WNDPROC = ct.WINFUNCTYPE(ct.c_long, ct.c_int, ct.c_uint, ct.c_int, ct.c_int)
 
 class WNDCLASS(ct.Structure):
 _fields_ = [('style', ct.c_uint),
 ('lpfnWndProc', WNDPROC),
 ('cbClsExtra', ct.c_int),
 ('cbWndExtra', ct.c_int),
 ('hInstance', ct.c_int),
 ('hIcon', ct.c_int),
 ('hCursor', ct.c_int),
 ('hbrBackground', ct.c_int),
 ('lpszMenuName', ct.c_char_p),
 ('lpszClassName', ct.c_char_p)]
 
 class RECT(ct.Structure):
 _fields_ = [('left', ct.c_long),
 ('top', ct.c_long),
 ('right', ct.c_long),
 ('bottom', ct.c_long)]
 
 class PAINTSTRUCT(ct.Structure):
 _fields_ = [('hdc', ct.c_int),
 ('fErase', ct.c_int),
 ('rcPaint', RECT),
 ('fRestore', ct.c_int),
 ('fIncUpdate', ct.c_int),
 ('rgbReserved', ct.c_char * 32)]
 
 class POINT(ct.Structure):
 _fields_ = [('x', ct.c_long),
 ('y', ct.c_long)]
 
 class MSG(ct.Structure):
 _fields_ = [('hwnd', ct.c_int),
 ('message', ct.c_uint),
 ('wParam', ct.c_int),
 ('lParam', ct.c_int),
 ('time', ct.c_int),
 ('pt', POINT)]
 
 def ErrorIfZero(handle):
 if handle == 0:
 raise WinError()
 else:
 return handle
 
 def MainWin():
 CreateWindowEx = win.user32.CreateWindowExA
 CreateWindowEx.argtypes = [ct.c_int, ct.c_char_p, ct.c_char_p, ct.c_int,
 ct.c_int, ct.c_int,
 ct.c_int, ct.c_int, ct.c_int, ct.c_int, ct.c_int,
 ct.c_int]
 CreateWindowEx.restype = ErrorIfZero
 
 # Define Window Class
 wndClass = WNDCLASS()
 wndClass.style = win32con.CS_HREDRAW | win32con.CS_VREDRAW
 wndClass.lpfnWndProc = WNDPROC(WndProc)
 wndClass.cbClsExtra = wndClass.cbWndExtra = 0
 wndClass.hInstance = win.kernel32.GetModuleHandleA(ct.c_int(win32con.NULL
 ))
 wndClass.hIcon = win.user32.LoadIconA(ct.c_int(win32con.NULL),
 ct.c_int(win32con.IDI_APPLICATION))
 wndClass.hCursor = win.user32.LoadCursorA(ct.c_int(win32con.NULL),
 ct.c_int(win32con.IDC_ARROW))
 wndClass.hbrBackground = win.gdi32.GetStockObject(ct.c_int(win32con.WHITE_BRU
 SH))
 wndClass.lpszMenuName = None
 wndClass.lpszClassName = "MainWin"
 # Register Window Class
 if not win.user32.RegisterClassA(ct.byref(wndClass)):
 raise WinError()
 # Create Window
 hwnd = CreateWindowEx(0,
 wndClass.lpszClassName,
 "Python Window",
 win32con.WS_OVERLAPPEDWINDOW,
 win32con.CW_USEDEFAULT,
 win32con.CW_USEDEFAULT,
 win32con.CW_USEDEFAULT,
 win32con.CW_USEDEFAULT,
 win32con.NULL,
 win32con.NULL,
 wndClass.hInstance,
 win32con.NULL)
 # Show Window
 win.user32.ShowWindow(ct.c_int(hwnd), ct.c_int(win32con.SW_SHOWNORMAL))
 win.user32.UpdateWindow(ct.c_int(hwnd))
 # Pump Messages
 msg = MSG()
 pMsg = ct.pointer(msg)
 NULL = ct.c_int(win32con.NULL)
 
 while win.user32.GetMessageA(pMsg, NULL, 0, 0) != 0:
 win.user32.TranslateMessage(pMsg)
 win.user32.DispatchMessageA(pMsg)
 
 return msg.wParam
 
 def WndProc(hwnd, message, wParam, lParam):
 ps = PAINTSTRUCT()
 rect = RECT()
 
 if message == win32con.WM_PAINT:
 hdc = win.user32.BeginPaint(ct.c_int(hwnd), ct.byref(ps))
 win.user32.GetClientRect(ct.c_int(hwnd), ct.byref(rect))
 win.user32.DrawTextA(ct.c_int(hdc),
 "Python Powered Windows" ,
 ct.c_int(-1), ct.byref(rect),
 win32con.DT_SINGLELINE|win32con.DT_CENTER|win32con.D
 T_VCENTER)
 win.user32.EndPaint(ct.c_int(hwnd), ct.byref(ps))
 return 0
 elif message == win32con.WM_DESTROY:
 win.user32.PostQuitMessage(0)
 return 0
 
 return win.user32.DefWindowProcA(ct.c_int(hwnd), ct.c_int(message),
 ct.c_int(wParam),
 ct.c_int(lParam))
 
 if __name__=='__main__':
 sys.exit(MainWin())
 
 
 PS: w ctypes.windll jest dostep dllek:
 kernel32
 user32
 shell32
 gdi32
 w ctypes.wintypes do wielu stalych i nieco struktur
 (ale pywin jest tu zdecydowanie pelniejszy. hint : modul win32api)
 
 ------------------------------
 
 Przy okazji przykladzik Wordowania poprzez PyWin COM:
 
 import sys
 from win32com.client import constants
 import win32com.client
 
 word = win32com.client.Dispatch('Word.Application')
 
 word.Visible = True
 
 doc = word.Documents.Add()
 doc.Activate()
 
 range = doc.Range(Start=0, End=0)
 range.Text = 'Czesc Kolego ! Tu jestem :)'
 
 ---------------------------
 
 a tu Excelowania:
 
 import sys
 from win32com.client import constants
 import win32com.client
 
 excel = win32com.client.Dispatch("Excel.Application")
 
 excel.Visible = True
 
 if len(excel.Workbooks) == 0:
 excel.Workbooks.Add()
 
 excel.Cells(1,1).Value = "Hello"
 
 ---------------------------------------------------
 
 Tu jakies zabawy z IE przez COM:
 
 import time
 import win32com.client
 
 READYSTATE_COMPLETE = 4
 
 ie = win32com.client.Dispatch('InternetExplorer.Applicati
 on')
 
 def result(ie):
 while True:
 state = ie.ReadyState
 if state == READYSTATE_COMPLETE:
 break
 time.sleep(0.1)
 return ie.Document.documentElement.innerHTML
 
 def getURL(ie, url):
 ie.Navigate(url)
 return result(ie)
 
 def refreshURL(ie):
 ie.Refresh()
 return result(ie)
 
 
 if __name__ == '__main__':
 print getURL(ie, 'http://python.pl')
 
 ----------------------------------------
 
 A tu jakies zabawy z Pythonem na cudzym
 komputerze poprzez DCOM ale tez z wykorzystaniem
 WinAPI:
 
 import pythoncom, win32com.client
 import win32api
 
 clsctx=pythoncom.CLSCTX_LOCAL_SERVER
 i = win32com.client.DispatchEx("Python.Interpreter", "PLK-PLEWALSK-XP",
 clsctx=clsctx)
 i.Exec("import win32api")
 print i.Eval("win32api.GetComputerName()")
 print win32api.GetComputerName()
 
 PS: No ale oczywiscie "Python nie ma dostepu do WinAPI ani do niczego... " ;)
 
 AK
 
 
- 
 16. Data: 2013-03-17 00:56:27
 Temat: Re: PowerShell - ktos uzywa?
 Od: "AK" <n...@n...com>
 Użytkownik "Piotr Chamera" <p...@p...onet.pl> napisał: 
 
 > Wiele programów pod windows udostępnia COM
 
 Mozna spokojnie powiedziec ze wiekszosc (a wszystkie powazniejsze).
 Tylko ze trzeba sie tego naumiec, a taki np. AutoCAD tp daje API
 ActiveX-owe liczace tysiace funkcji.
 
 PS: Uj biedne i nieswiadome te ayatollahy Unixow wszelkich ;)
 
 AK
 
 
- 
 17. Data: 2013-03-17 01:12:51
 Temat: Re: PowerShell - ktos uzywa?
 Od: "AK" <n...@n...com>
 
 Użytkownik "AK" <n...@n...com> napisał w wiadomości
 news:ki30rj$q0s$1@speranza.aioe.org...
 > Użytkownik "Piotr Chamera" <p...@p...onet.pl> napisał:
 >
 >> Wiele programów pod windows udostępnia COM
 >
 > Mozna spokojnie powiedziec ze wiekszosc (a wszystkie powazniejsze).
 > Tylko ze trzeba sie tego naumiec, a taki np. AutoCAD tp daje API
 > ActiveX-owe liczace tysiace funkcji.
 >
 > PS: Uj biedne i nieswiadome te ayatollahy Unixow wszelkich ;)
 >
 > AK
 
 Jeszcze moze sie komus przydac COMowy dostep do ADO.
 Kilka linijek raptem, a dostep do wszystkiego SQLowego poprzez
 standardowe dla Win ADO API:
 
 To fragment bardzo starych jakies wypocin i nawet nie wiem co robiace
 i dlaczego tak'namotane. To ma sluzyc _tylko_ jako zrab sposoby dostepu
 do ADO API przez COM.
 
 -----------------
 
 
 def openBase(server, database, user=None, password=None):
 
 import win32com.client
 import pywintypes
 
 def cn_cursor(self):
 
 def rs_close(self):
 pass
 
 rs = win32com.client.Dispatch('ADODB.Recordset')
 rs.ActiveConnection = self
 
 rs.execute = self.Execute
 rs.close = rs_close
 
 return rs
 
 def cn_commit(self):
 pass
 
 cn = win32com.client.Dispatch('ADODB.Connection')
 
 cn.cursor = cn_cursor
 cn.commit = cn_commit
 cn.close = cn.Close
 
 # oConn.Open "Provider=OraOLEDB.Oracle;" & _
 # "Data Source=MyOracleDB;" & _
 # "OSAuthent=1"
 
 # DSN = 'Provider=msdaora;' +
 # 'Data Source=BMM;' +
 # 'User Id=/;' +
 # 'Password='
 
 # Set connection properties.
 cn.Provider = 'sqloledb'
 cn.Properties['Data Source'].Value = server
 cn.Properties['Initial Catalog'].Value = database
 if '.' not in server:
 cn.Properties['Integrated Security'].Value = 'SSPI'
 else:
 cn.Properties['User ID'].Value = user
 cn.Properties['Password'].Value = password
 
 # Open connection.
 cn.Open()
 
 return cn
 
 
 def createCm(cn):
 
 import win32com.client
 import pywintypes
 
 # cm = CreateCm(cn)
 # cm.CommandText = cmd
 # rs = cm.Execute()
 
 cm = win32com.client.Dispatch('ADODB.Command')
 cm.ActiveConnection = cn
 
 return cm
 
 ---------------------------------
 
 PS: PyWinowy modul "adodbapi" do powazniejszych zastosowan
 http://sourceforge.net/projects/adodbapi
 
 AK
 
 
- 
 18. Data: 2013-03-17 11:14:42
 Temat: Re: PowerShell - ktos uzywa?
 Od: PawelS <c...@1...pl>
 R.e.m.e.K pisze: 
 > Dnia Sat, 16 Mar 2013 12:54:09 +0100, PawelS napisał(a):
 >
 >>> Ale skladnia Perla mnie mocno odrzuca :/
 >> A jaka to konkretnie składnia Perla Cię odrzuca,
 >> mógłbyś podać przykłady (tak z ciekawości pytam).
 >
 > Chocby pierwszy lepszy z polskiej wiki:
 >
 > $_ = "Magiczna liczba to 150\n";
 > print;
 > s/\d+/-1/;
 > print;
 To jest niestety problem ... wikipedii i wikipedystów,
 przedstawiających takie, a nie inne przykłady
 a na to nic nie poradzimy ...
 To powyżej powinno być zapisane:
 my $var; # using strict w perlu trzeba deklarować jednak zmienne ;)
 $var="Magiczna liczba to 150\n";
 print($var);
 # na to niestety nie ma akurat rady, chyba że własna sub:
 # coś na kształt PHP:
 # sub preg_replace {
 # my ($pattern,$replacement,$subject)=@_;
 # $subject=~s/$pattern/$replacement/g;
 # return $subject;
 # }
 $var=~s/\d+/-1/; # lub $var=preg_replace('\d+', '-1', $var);
 print($var);
 Jak dla mnie tak jest czytelniej,
 wystarczy przestać używać wynalazków i skrótów perla.
 
 > Albo:
 >
 > $n = $#a - $[ + 1;
 > print "ilosc elementow w wektorze: $n \n";
 >
 > Taki $#a czy $[ jako zywo przypomina mi idee Brainfucka, ktory jest fajny,
 > bo dowcipny i pomyslowy, ale jest tylko zartem.
 Jeśli nie można czegoś zmienić, to ...
 $#a - odpowiednik: count(ARRAY)-1
 ewentualnie, można zapisać własne sub:
 # sub count { my (@LIST)=@_; return $#LIST; }
 # przy czym to mylące, bo zwraca indeks ostatniego elementu
 # powinno być raczej: return $#LIST+1;
 przy czym to ARRAY to LIST, a jest jeszcze HASH,
 tu akurat w wielu językach jest to lepiej rozwiązane
 bez podziału na listę (klucze numeryczne)
 i hash (klucze to ciągi znaków)
 
 >> Wprawdzie Perl ma pewne swoje takie, a nie inne konstrukcje,
 >> jednakże w Perlu można pisać całkiem czytelne programy,
 >> składnią przypominające programy pisane w C
 >> (oczywiście poza pewnymi drobnymi wyjątkami).
 >
 > W Pythonie tez mozna, w Rubym tez mozna, ostatecznie w Visual Basicu tez
 > mozna. To nie jest argument, ze da sie pisac czytelnie, czytelnosc powinna
 > byc odgornie narzucona imho.
 Niestety z racji, że python narzuca na formatowanie,
 to i nie bardzo mi się podoba.
 Często stosuję tego typu pseduo kompresję kodu:
 if (conditional) { $a=1; $B[2]=2; $C['key']=3; }
 a gdzie indziej jeśli to potrzebne dekompresję:
 if (conditional) {
 $a=1; # bo jest to pierwsza zmienna w if ;)
 $B[2]=2; # bo jest to druga zmienna w if, to klucz = 2 i wartość = 2
 $C['key']=3; # bo musi być inaczej niż w poprzednich liniach
 }
 
 Poza tym zawsze się zastanawiam,
 jeśli w pytonie napiszę:
 if conditional
 instrukcja # linia rozpoczęta 1 tabulatorem
 instrukcja # linia rozpoczęta 4 spacjami
 instrukcja # linia rozpoczęta 1 tabulatorem
 instrukcja # linia rozpoczęta 4 spacjami
 
 to pytanie jak python to zinterpretuje?
 Przeglądając kody źródłowe (like C) często widzę
 mieszany styl wcięć, kilka linii ładnie spacjami,
 kolejne linie ładnie tabulatorami,
 i jeśli ja mam inne ustawienia np: vim ts=4 sw=4
 to niestety kod rozjeżdża mi się na ekranie,
 po prostu cudowny haos ...
 a i nawet kody w pythonie tak zapisane skrypty widziałem ...
 co dla mnie jest zastanawiające jak to się wykona
 analogicznie jak dla Ciebie powyższe perlowe replace ...
 
- 
 19. Data: 2013-03-17 12:14:23
 Temat: Re: PowerShell - ktos uzywa?
 Od: Adam Przybyla <a...@r...pl>
 Roman W <b...@g...pl> wrote: 
 > On Sat, 16 Mar 2013 12:23:17 +0000 (UTC), Adam Przybyla
 > <a...@r...pl> wrote:
 >> ... jesli juz, pomysl o pythonie. Zastosujesz wszedzie, nie tylko
 > na
 >> niszowym PC. Z powazaniem
 >
 > Ze niby co jest niszowe, PC z Windows? Lol.
 ... niszowy jest PC, niewazne z jakim systemem. Z powazaniem
 Adam Przybyla
 
- 
 20. Data: 2013-03-17 12:27:47
 Temat: Re: PowerShell - ktos uzywa?
 Od: "R.e.m.e.K" <g...@d...null>
 Dnia Sun, 17 Mar 2013 11:14:42 +0100, PawelS napisał(a): 
 
 >>> A jaka to konkretnie składnia Perla Cię odrzuca,
 >>> mógłbyś podać przykłady (tak z ciekawości pytam).
 >>
 >> Chocby pierwszy lepszy z polskiej wiki:
 >>
 >> $_ = "Magiczna liczba to 150\n";
 >> print;
 >> s/\d+/-1/;
 >> print;
 > To jest niestety problem ... wikipedii i wikipedystów,
 > przedstawiających takie, a nie inne przykłady
 > a na to nic nie poradzimy ...
 
 Zawsze mozesz wyedytowac wiki i poprawic, sam tak czasem robie :-)
 
 > To powyżej powinno być zapisane:
 > my $var; # using strict w perlu trzeba deklarować jednak zmienne ;)
 > $var="Magiczna liczba to 150\n";
 > print($var);
 > # na to niestety nie ma akurat rady, chyba że własna sub:
 > # coś na kształt PHP:
 > # sub preg_replace {
 > # my ($pattern,$replacement,$subject)=@_;
 > # $subject=~s/$pattern/$replacement/g;
 > # return $subject;
 > # }
 > $var=~s/\d+/-1/; # lub $var=preg_replace('\d+', '-1', $var);
 > print($var);
 > Jak dla mnie tak jest czytelniej,
 > wystarczy przestać używać wynalazków i skrótów perla.
 
 Ale jak sam piszesz przestac nie tak latwo, bo "na to niestety nie ma rady".
 
 >> Albo:
 >> $n = $#a - $[ + 1;
 >> print "ilosc elementow w wektorze: $n \n";
 >>
 >> Taki $#a czy $[ jako zywo przypomina mi idee Brainfucka, ktory jest fajny,
 >> bo dowcipny i pomyslowy, ale jest tylko zartem.
 
 btw powyzszy przyklad nie jest juz z wiki, tylko jakiegos studenckiego
 skryptu.
 
 > Jeśli nie można czegoś zmienić, to ...
 > $#a - odpowiednik: count(ARRAY)-1
 > ewentualnie, można zapisać własne sub:
 > # sub count { my (@LIST)=@_; return $#LIST; }
 > # przy czym to mylące, bo zwraca indeks ostatniego elementu
 > # powinno być raczej: return $#LIST+1;
 > przy czym to ARRAY to LIST, a jest jeszcze HASH,
 > tu akurat w wielu językach jest to lepiej rozwiązane
 > bez podziału na listę (klucze numeryczne)
 > i hash (klucze to ciągi znaków)
 
 czyli koszmarek :)
 
 >>> Wprawdzie Perl ma pewne swoje takie, a nie inne konstrukcje,
 >>> jednakże w Perlu można pisać całkiem czytelne programy,
 >>> składnią przypominające programy pisane w C
 >>> (oczywiście poza pewnymi drobnymi wyjątkami).
 
 Ja zdaje sobie sprawe, ze po miesiacu perlowania nie bede sie juz potykal o
 te dziwactwa, ale naprawde wole power inwestowac w rzeczy bardziej
 uniwersalne niz pomysly zwyciezcy konkursu "najbardziej zamotana skladnia".
 
 >> W Pythonie tez mozna, w Rubym tez mozna, ostatecznie w Visual Basicu tez
 >> mozna. To nie jest argument, ze da sie pisac czytelnie, czytelnosc powinna
 >> byc odgornie narzucona imho.
 > Niestety z racji, że python narzuca na formatowanie,
 > to i nie bardzo mi się podoba.
 > Często stosuję tego typu pseduo kompresję kodu:
 > if (conditional) { $a=1; $B[2]=2; $C['key']=3; }
 > a gdzie indziej jeśli to potrzebne dekompresję:
 > if (conditional) {
 > $a=1; # bo jest to pierwsza zmienna w if ;)
 > $B[2]=2; # bo jest to druga zmienna w if, to klucz = 2 i wartość = 2
 > $C['key']=3; # bo musi być inaczej niż w poprzednich liniach
 > }
 
 Teraz ja z ciekawosci spytam. Po co stosujesz kompresje? Masz jakis cel w
 tym, zeby plik zrodla bym mniejszy? Osobiscie unikam takich praktyk jak
 ognia, bo po roku, gdy musze ten kod czytac to chetnie sam bym sie kopnal w
 dupe za taki styl. Znaczy juz nie musze, bo od lat tego nie robie.
 
 > Poza tym zawsze się zastanawiam,
 > jeśli w pytonie napiszę:
 > if conditional
 > instrukcja # linia rozpoczęta 1 tabulatorem
 > instrukcja # linia rozpoczęta 4 spacjami
 > instrukcja # linia rozpoczęta 1 tabulatorem
 > instrukcja # linia rozpoczęta 4 spacjami
 >
 > to pytanie jak python to zinterpretuje?
 
 Czy to nie zalezy od ustawien kompilatora? Poza tym uzywajac dobrego edytora
 mozna o tym problemie zapomniec bez wzgledu na to czy uzywasz spacji, taba
 czy obu naraz. Mam na mysli edytor, ktory w locie podmieni taby na spacje
 lub spacja na taby - tak jak chcesz.
 Zatem jest to problem wagi lekkiej, w przeciwienstwie do perlowych kompresji
 zabetonowanych w jezyk na zawsze.
 
 > Przeglądając kody źródłowe (like C) często widzę
 > mieszany styl wcięć, kilka linii ładnie spacjami,
 > kolejne linie ładnie tabulatorami,
 > i jeśli ja mam inne ustawienia np: vim ts=4 sw=4
 > to niestety kod rozjeżdża mi się na ekranie,
 > po prostu cudowny haos ...
 > a i nawet kody w pythonie tak zapisane skrypty widziałem ...
 > co dla mnie jest zastanawiające jak to się wykona
 > analogicznie jak dla Ciebie powyższe perlowe replace ...
 
 A jednak sie jakos wykonuje chyba. Czyli moze python jest "madrzejszy" niz
 sie wydaje? :-)
 
 --
 pozdro
 R.e.m.e.K
 


 do góry
 do góry![Ranking kont firmowych - w jakim banku założysz najlepsze konto firmowe w 2025 r. [© DigitalMarketingAgency - pixabay.com] Ranking kont firmowych - w jakim banku założysz najlepsze konto firmowe w 2025 r.](https://s3.egospodarka.pl/grafika2/konto-firmowe/Ranking-kont-firmowych-w-jakim-banku-zalozysz-najlepsze-konto-firmowe-w-2025-r-266886-150x100crop.jpg) 
 
![Przelew zagraniczny - jaką opcję wybrać? [© Pio Si - Fotolia.com] Przelew zagraniczny - jaką opcję wybrać?](https://s3.egospodarka.pl/grafika2/przelewy/Przelew-zagraniczny-jaka-opcje-wybrac-219379-150x100crop.jpg) 
![Jaki jest koszt przejechania 100 km samochodem? Sprawdź porównanie benzyny, oleju napędowego, LPG i innych paliw. [© matthias21 - Fotolia.com] Jaki jest koszt przejechania 100 km samochodem? Sprawdź porównanie benzyny, oleju napędowego, LPG i innych paliw.](https://s3.egospodarka.pl/grafika2/wydatki-na-paliwo/Jaki-jest-koszt-przejechania-100-km-samochodem-Sprawdz-porownanie-benzyny-oleju-napedowego-LPG-i-innych-paliw-262279-150x100crop.jpg) 
 Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei
Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei 
 
 
 
![Milion na koncie? Wystarczyło inwestować po około 2 tysiące miesięcznie [© wygenerowane przez AI] Milion na koncie? Wystarczyło inwestować po około 2 tysiące miesięcznie](https://s3.egospodarka.pl/grafika2/oszczedzanie-pieniedzy/Milion-na-koncie-Wystarczylo-inwestowac-po-okolo-2-tysiace-miesiecznie-269397-150x100crop.jpg) 
![Wynajem mieszkania w Warszawie pochłania 44% pensji. Zobacz, jak wypadamy na tle Europy [© pixabay] Wynajem mieszkania w Warszawie pochłania 44% pensji. Zobacz, jak wypadamy na tle Europy](https://s3.egospodarka.pl/grafika2/rynek-najmu/Wynajem-mieszkania-w-Warszawie-pochlania-44-pensji-Zobacz-jak-wypadamy-na-tle-Europy-269391-150x100crop.jpg) 
![Lot z niespodzianką - jak overbooking zmienia podróż i jakie prawa mają pasażerowie? [© wygenerowane przez AI] Lot z niespodzianką - jak overbooking zmienia podróż i jakie prawa mają pasażerowie?](https://s3.egospodarka.pl/grafika2/prawa-pasazera/Lot-z-niespodzianka-jak-overbooking-zmienia-podroz-i-jakie-prawa-maja-pasazerowie-269384-150x100crop.jpg) 
![Lider z sercem: empatia i zaufanie jako klucz do sukcesu zespołu [© wygenerowane przez AI] Lider z sercem: empatia i zaufanie jako klucz do sukcesu zespołu](https://s3.egospodarka.pl/grafika2/lider/Lider-z-sercem-empatia-i-zaufanie-jako-klucz-do-sukcesu-zespolu-269133-150x100crop.png) 
![Bańka AI za 5 bilionów dolarów: Kiedy inwestorzy powiedzą: sprawdzam? [© wygenerowane przez AI] Bańka AI za 5 bilionów dolarów: Kiedy inwestorzy powiedzą: sprawdzam?](https://s3.egospodarka.pl/grafika2/AI/Banka-AI-za-5-bilionow-dolarow-Kiedy-inwestorzy-powiedza-sprawdzam-269382-150x100crop.png) 
 


