|
Corel FORUM Forum użytkowników programów firmy Corel. Grafika wektorowa, rastrowa i obróbka zdjęć cyfrowych |
|
Makra - Makro RGB na CMYK, 100%K, overprint
krnck - 31 Lipiec 2013, 22:36 Temat postu: Makro RGB na CMYK, 100%K, overprint Witam,
mam krzyżówkę w RGB, potrzebna jest zamiana na CMYK, 100%K, czarny nadrukowany.
Wszystko w Corel X6.
chezare - 1 Sierpień 2013, 01:14
A ja nie mam krzyżówki, za to mam X3
Nie bardzo rozumiem, nie wiesz jak to zrobić, czy nie masz X6?
Ja bym Ci zamienił, albo powiedział jak to zrobić, ale musiałbym mieć cdr w wersji 13, bo tak to nie wiem czy to RGB, to jeden kolor, czy cała tęcza?
tegraf - 1 Sierpień 2013, 08:01
Chezare, koledze chodzi o makro, które to będzie robiło teraz i w przyszłości.
Przecież dał to tutaj > Makra.
Gdyby chciał taką trywialną zamianę, to dałby to do działu "Dam zlecenie".
chezare - 2 Sierpień 2013, 22:11
Ja się rano zastanawiałem o co chodzi Tegrafowi?
Teraz do mnie dotarło, że musiałem być chyba lekko oczadziały kiedy to pisałem?
Na szczęście nie mam X6, to nie będę kombinował, choć zadanie wydaje się niezbyt skomplikowane?
Zresztą następną krzyżówkę kolega narysuje już w cmyku, to po co makro?
krnck - 5 Sierpień 2013, 11:03
Krzyżówka jest importowana do Corela z innego programu po to, aby ją zamienić na CMYK.
bidon184 - 5 Sierpień 2013, 11:22
ja to sobie pobrałem,i powiem tak,po grzyba w tej krzyżówce dwa kontury na pole ,mało tego w niektórych polach są dwa a w innych jeden,totalnie tego nie jarze
chezare - 5 Sierpień 2013, 16:02
To ja się tylko zapytam. Czy to jest jakiś specjalizowany program do rysowania krzyżówek?
Bidonik mógłbyś mi zapisać krzyżówkę do 13 wersji?
bidon184 - 5 Sierpień 2013, 21:29
a prosze bardzo w cdr12
krnck - 5 Sierpień 2013, 21:51
Krzyżówka jest stworzona w specjalnym programie, ale w RGB.
chezare - 5 Sierpień 2013, 21:52
Zadanie byłoby banalnie proste jest jednak drobny kłopot.
Nie ma problemu z konwersją rgb na cmyk, nie ma problemu z włączeniem nadrukowania, problem jest w tym, że w normalnym dokumencie Corela kolory rgb 0/0/0 i 255/255/255 oraz w cmyk 0/0/0/0 i 0/0/0/100 mają zdefiniowane nazwy i nazywają się odpowiednio White i Black albo w polskiej wersji Biały i Czarny. W dokumencie kolegi te kolory nie mają nazw, a ja póki co po nazwie mogę znaleźć czarny i biały bez problemu, ale nie wiem jak przeczytać wartość składowych koloru. Konwersja rgb na cmyk działa elegancko, ale omija wspomniane kolory. Rozwiązanie już prawie widzę
chezare - 7 Sierpień 2013, 13:12
Bidon ma rację. W Twoim dokumencie jest totalny bałagan.
Nie wiem na czym polega to co robi ten program od krzyżówek, w Corelu taką krzyżówkę łącznie z wpisaniem tekstów można zrobić w 10 min.
Bałaganu skrypt nie likwiduje, ale w 12 zamienia kolory rgb na cmyk i włącza nadrukowanie dla czarnego.
Sub RGB_to_CMYK()
Optimization = True
For i = 1 To ActivePage.Shapes.Count
If ActivePage.Shapes(i).Fill.UniformColor.Type = cdrColorRGB Then
ActivePage.Shapes(i).Fill.UniformColor.ConvertToCMYK
End If
If ActivePage.Shapes(i).Outline.Color.Type = cdrColorRGB Then
ActivePage.Shapes(i).Outline.Color.ConvertToCMYK
End If
If ActivePage.Shapes(i).Outline.Color.Name = "Black" Or ActivePage.Shapes(i).Outline.Color.Name = "Czarny" Then
ActivePage.Shapes(i).OverprintOutline = True
End If
If ActivePage.Shapes(i).Fill.UniformColor.Name = "Black" Or ActivePage.Shapes(i).Fill.UniformColor.Name = "Czarny" Then
ActivePage.Shapes(i).OverprintFill = True
End If
If ActivePage.Shapes(i).Type = cdrTextShape And (ActivePage.Shapes(i).Fill.UniformColor.Name = "Black" Or ActivePage.Shapes(i).Fill.UniformColor.Name = "Czarny") Then
ActivePage.Shapes(i).CreateSelection
ActiveSelection.OverprintFill = True
End If
Next i
ActiveDocument.ClearSelection
Optimization = False
ActiveWindow.Refresh
MsgBox "G O T O W E"
End Sub
krnck - 7 Sierpień 2013, 16:05
Skrypt w X6 wygląda tak jak w załączniku, brak nadruku czarnego, zamiast C:0 M:0 Y:0 K:0 jest C:95 M:95 Y:45 K:95, więc to nie ten skrypt. Kolega pisze, że krzyżówkę w Corelu robi się w 10 min, przecież Corel nie układa krzyżówek.
Ten skrypt poniżej działa w X5, w X6 już nie, a ja właśnie potrzebuje na X6.
Sub zamien()
Dim kolor As Color
Optimization = True
For i = 1 To ActivePage.Shapes.Count
' zamiana wypełnienia na CMYK
If ActivePage.Shapes(i).Fill.UniformColor.Name = "Czarny" Then
ActivePage.Shapes(i).Fill.ApplyUniformFill CreateCMYKColor(0, 0, 0, 100)
ActivePage.Shapes(i).OverprintFill = True
ElseIf ActivePage.Shapes(i).Fill.UniformColor.Name = "Biały" Then
ActivePage.Shapes(i).Fill.ApplyUniformFill CreateCMYKColor(0, 0, 0, 0)
End If
' zamiana konturu na CMYK
If ActivePage.Shapes(i).Outline.Color.Name = "Czarny" Then
ActivePage.Shapes(i).Outline.SetProperties Color:=CreateCMYKColor(0, 0, 0, 100)
ActivePage.Shapes(i).OverprintOutline = True
ElseIf ActivePage.Shapes(i).Outline.Color.Name = "Biały" Then
ActivePage.Shapes(i).Outline.SetProperties Color:=CreateCMYKColor(0, 0, 0, 0)
End If
' zamiana koloru fioletowych kratek
If ActivePage.Shapes(i).Fill.UniformColor.Type = cdrColorRGB And ActivePage.Shapes(i).Fill.UniformColor.Name = "unnamed color" Then
ActivePage.Shapes(i).Fill.UniformColor.ConvertToCMYK
End If
' podmiana "pustych" znaków na kropki
If ActivePage.Shapes(i).Type = cdrTextShape Then
If ActivePage.Shapes(i).Text.Story.Font = "Wingdings" Then
Dim pozx As Double
Dim pozy As Double
Dim rozmiar As Double
ActivePage.Shapes(i).GetPosition pozx, pozy
rozmiar = ActivePage.Shapes(i).Text.Story.size
ActivePage.Shapes(i).Delete
Dim tekst As Shape
Set tekst = ActiveLayer.CreateArtisticText(pozx, pozy, "ź", cdrPolish, , "Wingdings", rozmiar, cdrFalse, cdrFalse, cdrNoFontLine, cdrLeftAlignment)
End If
End If
Next
Optimization = False
ActiveWindow.Refresh
End Sub
krnck - 7 Sierpień 2013, 16:07
Załącznik
chezare - 7 Sierpień 2013, 16:38
Ja taką krzyżówkę ułożyłbym rozumem i narysował w Corelu, w 10 min
Mój skrypt działa w 12 i działa w X3, jak jest wyżej nie wiem bo nie mam jak sprawdzić.
Skrypt, który zamieściłeś szuka kolorów białego i czarnego po nazwie. Nie zadziała w wersji angielskiej i być może z tego samego powodu nie działa w X6.
Sprawdź jak się nazywa, czy w ogóle się nazywa, kolor rgb 0/0/0 w Twojej krzyżówce?
Ten sprawdza kolory po wartościach a nie nazwach, sprawdź, może zadziała?
Sub To_CMYK()
Dim cf As New Color
Dim co As New Color
Dim s As Shape
Optimization = True
For Each s In ActiveSelection.Shapes
If s.Fill.Type = cdrUniformFill Then
cf.CopyAssign s.Fill.UniformColor
If cf.RGBRed = 0 And cf.RGBGreen = 0 And cf.RGBBlue = 0 Then
s.Fill.UniformColor.CMYKAssign 0, 0, 0, 100
s.OverprintFill = True
ElseIf cf.RGBRed = 255 And cf.RGBGreen = 255 And cf.RGBBlue = 255 Then
s.Fill.UniformColor.CMYKAssign 0, 0, 0, 0
Else
s.Fill.UniformColor.ConvertToCMYK
End If
End If
Next s
For Each s In ActiveSelection.Shapes
If s.Outline.Type = cdrOutline Then
co.CopyAssign s.Outline.Color
If co.RGBRed = 0 And co.RGBGreen = 0 And co.RGBBlue = 0 Then
s.Outline.SetProperties Color:=CreateCMYKColor(0, 0, 0, 100)
s.OverprintOutline = True
ElseIf co.RGBRed = 255 And co.RGBGreen = 255 And co.RGBBlue = 255 Then
s.Outline.SetProperties Color:=CreateCMYKColor(0, 0, 0, 0)
End If
End If
Next s
Optimization = False
ActiveDocument.ClearSelection
ActiveWindow.Refresh
End Sub
krnck - 8 Sierpień 2013, 13:33
Niestety skrypt nie działa.
chezare - 8 Sierpień 2013, 13:58
Zapomniałem napisać, że skrypt działa tylko w stosunku do zaznaczonych obiektów.
Trzeba najpierw wszystko zaznaczyć (ctrl+A).
bidon184 - 10 Sierpień 2013, 09:16
potwierdzam że skrypt działa w 100 procentach na x6
maroQ - 12 Sierpień 2013, 23:05
chezare napisał/a: | Optimization = True |
Razem z Optimalization należy obowiązkowo używać
Kod: | On Error Resume Next |
lub w .NET:
Kod: | Draw.Optimalization = True
Try
'dalsza czesc kodu
Catch ex as Exception
msgbox(ex.Message)
End Try
Draw.Optimalization = False |
Analogicznie robimy z grupowaniem operacji. Brak obsługi błędów może wywołać konieczność restartu Corela. Podczas gdy optimalization da się przerwać mając otwarty edytor VBA, to z grupowaniem bywa różnie i przeważnie restart jest wymagany.
Trzeba obsługiwać błędy bo później są problemy.
@Chazare: jesteś z support team a nie używasz znaczników BBCode: "code"? Na elektrodzie powiedzieli by, że to bardzo nieładnie
Najbardziej razi mnie w oczy jaskrawy strumień... braku wcięć w kodzie... no ale nawet na studiach ciężko było to zwalczyć u kolegów.
chezare - 13 Sierpień 2013, 08:21
Ja ten Support Team mam od samego początku. Sto razy pisałem, że się na tym nie znam, ale nikt nie słucha.
Ja wiem co ten kod robi a kolega który ma kłopot z krzyżówkami w rgb nie wie, to po co mi albo jemu wcięcia?
Dopóki wiem jak w VBA zrobić parasol, to będzie mi chyba trudno o mobilizację?
Jak by mi się zdarzyło jednak kiedyś wyrwać z jakimś kodem to postaram się zrobić wcięcia, może nawet dodam komentarze
Całkiem poważnie, to oczywiście masz Szaman rację, obsługa błędów nie zaszkodzi, choć jak Corel postanowi się wykopyrtnąć, to zrobi to nawet na
krnck - 16 Sierpień 2013, 20:25
Skrypt działa w X6.
chezare - 17 Sierpień 2013, 06:51
Wiem że makro działa w X6, bo Bidon sprawdził
Makro bada kolory po wartościach a nie nazwach, tak że powinno być odporne na różne wersje językowe, ale nie wszystko jest dobrze.
Poza obsługą błędów o której wspomniał kolega Szaman jest jeszcze inny problem.
Będzie dobrze jak wszystko jest w RGB, ale jak się trafi po drodze coś np. w CMYK, to kapota i to bez żadnego komunikatu o błędzie.
Edit
Poprawiłem, mam nadzieję że na lepsze
Pozostał jeszcze problem kiedy w dokumencie przed uruchomieniem makra będzie czarny (0,0,0,100), wtedy nadrukowanie nie zostanie włączone i wszystkie te potencjalne kłopoty, które w tym momencie nie przychodzą mi do głowy
Jedno jest pewne, jeśli w kodzie jest coś co może się wykoleić, to się wykolei.
Ja bym na wszelki wypadek robił kopie dokumentów
Kod: | Sub RGB_to_CMYK()
' Procedura zamienia w zaznaczonych obiektach kolory rgb na cmyk
' RGB 0,0,0 zamienia na CMYK 0,0,0,100 i włącza nadrukowanie
' Wszystkie elementy w dokumencie zostaną rozgrupowane
Dim kw As New Color ' kolor wypełnienia
Dim kk As New Color ' kolor konturu
Dim s As Shape
' Jeśli nic nie zostało zaznaczone
If ActiveSelectionRange.Count = 0 Then
MsgBox "Trzeba zaznaczyć obiekty, których kolory mają zostać przekonwertowane!"
GoTo NIC
End If
Optimization = True ' wyłączenie odświeżania ekranu
On Error Resume Next ' jak by coś poszło nie tak :-)
ActiveSelection.UngroupAll
For Each s In ActiveSelection.Shapes ' ta konstrukcja działa w obrębie wszystkich
' zaznaczonych obiektów
If s.Fill.Type = cdrUniformFill Then ' sprawdzamy czy obiekt ma wypełnienie
kw.CopyAssign s.Fill.UniformColor ' jeśli ma to zapamiętujemy jego kolor
If kw.Type = cdrColorRGB Then ' interesuje nas tylko RGB
If kw.RGBRed = 0 And kw.RGBGreen = 0 And kw.RGBBlue = 0 Then
s.Fill.UniformColor.CMYKAssign 0, 0, 0, 100: s.OverprintFill = True
ElseIf kw.RGBRed = 255 And kw.RGBGreen = 255 And kw.RGBBlue = 255 Then
s.Fill.UniformColor.CMYKAssign 0, 0, 0, 0
Else: s.Fill.UniformColor.ConvertToCMYK
End If
End If
End If
' wypełnienie powinniśmy mieć załatwione
' w szczególny sposób traktowane są dwa kolory rgb: 0,0,0 i 255,255,255
' choć z białym raczej nie powinno być problemów?
' teraz te same manewry przeprowadzamy na konturze
If s.Outline.Type = cdrOutline Then ' to samo ale dla konturu
kk.CopyAssign s.Outline.Color ' jeśli jest to przyda nam się informacja
' o jego kolorze
If kk.Type = cdrColorRGB Then ' jeśli kolor konturu jest w RGB
If kk.RGBRed = 0 And kk.RGBGreen = 0 And kk.RGBBlue = 0 Then
s.Outline.SetProperties Color:=CreateCMYKColor(0, 0, 0, 100): s.OverprintOutline = True
ElseIf kk.RGBRed = 255 And kk.RGBGreen = 255 And kk.RGBBlue = 255 Then
s.Outline.SetProperties Color:=CreateCMYKColor(0, 0, 0, 0)
Else: s.Outline.Color.ConvertToCMYK
End If
End If
End If
Next s
Optimization = False
ActiveDocument.ClearSelection
ActiveWindow.Refresh
NIC:
End Sub
|
Jak by ktoś łaskawie sprawdził czy to działa w X6, to byłbym wdzięczny
Aha, nie biorę odpowiedzialności za ewentualne uszkodzenia zdrowia lub sprzętu.
Martwię się trochę, że może za mało wcięć zrobiłem, Szaman może być niezadowolony
Przy okazji, Maro da się wstawić komentarz bez apostrofów przed każdym wierszem?
maroQ - 19 Sierpień 2013, 16:51
chezare napisał/a: | że może za mało wcięć zrobiłem, zaman może być niezadowolony |
Właściwie może być :) szaman jest zadowolony
chezare napisał/a: | da się wstawić komentarz bez apostrofów przed każdym wierszem |
Niestety... to jest właśnie wielka wada Visual Basica. Da się pisać komentarze po staremu:
lub z apostrofem pojedynczym
Wielolinijkowe komentarze lub takie w treści (np. C/C++ i pochodne: /**/) nie istnieją w tym języku. W VB.NET przycisk dodający/zdejmujący komentarze dla całej zaznaczonej treści (wiele linijek naraz) można to też zrobić wciskając kolejne klawisze skrótu:
Niestety w VBA czyli (VB6 lub VB6.5) nie da się tego zrobić.
W VB.NET obejściem jest używanie dyrektywy #if:
(Kliknij)
Kompilator pominie tak zapisaną treść i nie zgłosi błędu nawet jeśli w środku będzie "Pan Tadeusz" czy inna epopeja. Gdyby zaś za #if była jakaś zmienna która może być prawdziwa to mógł by być problem z debugowaniem. Dlatego bezpieczniej jest nie używać tego zapisu (tak profilaktycznie i ostrzegawczo).
Natomiast używanie komentarzy wielolinijkowych w treści np.:
Kod: | <?php
/* 0 */ $arr[0] = "daa"; //Linia 0
/* 1 */ $arr[1] = "sda"; //Linia 1
/* 2 */ $arr[2] = "ghhh"; //Linia 2
/* 3 */ $arr[3] = "eee"; //Linia 3
print_r($arr);
?> |
nie jest zbyt dobrą metodą, ponieważ w razie potrzeby zakomentowania linijki trzeba wstawić // za ukośnikiem. Natomiast użycie:
Kod: | /* 0 * i++; /* zwieksza licznik i */ | może zgłaszać warningi w niektórych edytorach javy np. Eclipse. Nie wiem, czy każdy widzi co zrobiłem w tym kodzie powyżej. Otóż usunąłem ukośnik w pierwszej części komentarza tym samym ukrywając linijkę, ale to może być mylące jeśli ktoś użyje edytora bez kolorowania składni, dlatego niektóre programy uznają to za błąd.
O ładnym pisaniu kodu czasem można usłyszeć na uczelniach gdzie doktor informatyk czepia się czego może (np. siostra miała kiedyś problem bo użyty znak myślnika w HTMLu był niezgodny z tym jaki powinien być użyty w tym przypadku... do dzisiaj nie rozumiem o co chodziło)... w końcu to był HTML, a nie XML... zresztą...
chezare - 19 Sierpień 2013, 17:25
Może myślników jest 5 rodzajów tak jak spacji?
Dzięki serdeczne za łaskawą ocenę i za informacje o komentarzach, niestety jest tak jak myślałem.
tegraf - 19 Sierpień 2013, 17:59
chezare napisał/a: | Może myślników jest 5 rodzajów tak jak spacji? |
Poziomych kresek w tekście można wyróżnić 4 rodzaje: dywiz, półpauza, pauza i minus.
Dywiz jest najkrótszy, druga w kolejności jest półpauza, a dalej - pauza. Minus jest najczęściej o długości zbliżonej do półpauzy, ale leży na innej wysokości.
maroQ napisał/a: | siostra miała kiedyś problem bo użyty znak myślnika w HTMLu był niezgodny z tym jaki powinien być użyty |
Myślnik jest jeden, najczęściej oznaczany półpauzą, rzadziej pauzą, czasem - nieprawidłowo - dywizem.
Może chodziło o to właśnie?
bidon184 - 19 Sierpień 2013, 18:39
ale sadzicie,Chezare napisal jakiś tam kod i działa co potwierdzam,a myślniki spacje,po grzyba to komuś,ja tam używam stopki czyli np _parent_parent itd a tego znaczku czyli - to chyba raz użyłem do ładowania pliku zewnetrznego,ale i tak muliło więc to olałem,dla mnie nie ma co kombinować,jak działa to działa i nie ma co się rozwijać,aczkolwiek dla bardziej ambitnych kodów pewnie ma to znaczenie
chezare - 19 Sierpień 2013, 18:42
Bidonik, jak taki program składa się z dziesięciu wierszy, to nie ma żadnego problemu, jak ma 10 tys. linii, to bez zachowania porządku nie da się takiego projektu opanować
maroQ - 19 Sierpień 2013, 21:00 Temat postu: Nie do rymu, nie do taktu, wsadź szamana do kontaktu.
chezare napisał/a: | jak ma 10 tys. linii, to bez zachowania porządku nie da się takiego projektu opanować | Dokładnie
Poza tym stosuje się jeszcze specjalną składnię opisu funkcji i klas do generowania dokumentacji technicznej. Jak przy projekcie pracuje więcej niż jeden programista to to się przydaje. Dokumentacja jest generowana prawie automatycznie na bazie kodu źródłowego (np. javadoc) lub plików xml zapisywanych przez środowisko (np. Visual Studio), które później przy użyciu np. Doxygen można zamienić na bardzo ładną dokumentację.
Tak przykładowo mam własnie otwartą jedną z klas pewnego wielkiego makra dla Corel i tu razem z komentarzami jest 2046 linijek (takich klas jest sporo w programie). Bez komentarzy przy dziedziczeniu i rozbiciu projektu na wiele bibliotek dll trudno jest się połapać co jest do czego. Zresztą nawet posiadając komentarze ciężko jest czasem przeszukiwać kod w poszukiwaniu błędów lub zmian. W VB.NET dodano dodatkowe dyrektywny tj.:
Kod: | #Region "Opis czegoś"
'miejsce na metody i funkcje
#End Region |
Dzięki niej da się zwijać kod tzw. "plusikiem". Taka opcja zaczyna się opłacać powyżej 300 linii kodu (licząc bez komentarzy i pustych linii) w klasie.
No ale wracając do wcięć to np. w Programmers Notepad, Notepad++, Eclipse, NetBeans itp. da się ukrywać inne zbliżone rzeczy. Przykładowo w PN stosowane są linie pomocnicze które pokazują wcięcia co pozwala wizualnie ogarnąć kod. Czasem można nawet zwijać tekst wewnątrz if, for itp.
Jako ciekawostkę powiem, że istnieją konkursy w pisaniu kodu w jak najmniej czytelny sposób. Niektórzy nawet potrafią tworzyć obrazki z kodu, ale to tylko w C bo tam za pomocą odpowiednich deklaracji specjalnych typów da się robić cuda. Kiedyś zrobiłem numer na zajęciach i napisałem sobie zestaw instrukcji w pliku nagłówkowym tak by wyglądało na to, że w C działają instrukcje języka PHP. Doktorek nie rozumiał co się dzieje kiedy pokazałem mu że da się to skompilować w zwykłym przestarzałym DevC++.
Dobra. Obiecuję więcej nie pisać takich litani szczególnie, że to się ma nijak do tematu ani do VBA.
bidon184 - 19 Sierpień 2013, 21:57
hym,ja napisałem post ale go skasowałem,jednak,musze jeszcze raz napisać,o jakie wcięcia wam chodzi i jakie odnośniki nie będe wklejał tutaj AS bo za dużo miejsca zajmuje,ale weżcie mi powiedzcie o czym rozmawiacie,bo nie moge zatrybić,daje przykład kodu ,pierwszy jest DemonicHawk,drugi zaczynający się od wiersza Und schalten Sie den jest wykładnią moją i kolegi Kulesiak2,na tym przykładzie prosze mi wyjaśnić co to są te wcięcia daje link http://www.mylgcookie.com...ic,19926.0.html
chezare - 20 Sierpień 2013, 00:23
Bidon, każdy program, w jakim by języku nie był napisany, to zwykły tekst, mniej lub bardziej niezrozumiały dla kogoś kto nie wie o co chodzi. Wcięcie w takim tekście jest dokładnie takim samym wcięciem jak np. na początku akapitu w książce.
W specjalizowanych edytorach to zresztą nie jedyny sposób na rozróżnianie pewnych fragmentów kodu, mogą służyć temu np. różne kolory, albo różna czcionka.
Generalnie chodzi o to, żeby lepiej było widać co jest z czym związane.
Jak masz np. jedną pętlę od do, to wcięcia oprócz wartości estetycznych nie mają ani znaczenia, ani większego sensu, ale jak tych pętli jest kilka jedna w drugiej a w każdej są jakieś instrukcje które coś robią, to fajnie jest wiedzieć co do którego fragmentu należy.
Służą do tego celu różnej głębokości wcięcia.
Chodzi o to żeby było łatwiej zrozumieć konstrukcję procedury. Oczywiście da się to zrozumieć i bez wcięć, ale będzie trudniej. To tak jak marnie złożona książka, przeczytać się da, ale czytanie zmęczy czytającego.
Oprócz tych nieszczęsnych wcięć istotnych jest wiele innych rzeczy jak np. nazwy zmiennych, stałych czy choćby nazwy funkcji czy procedur. Jak się nie przemyśli tego na początku, nie będzie konsekwentnym w przestrzeganiu założeń, to połapanie się w tym co się samemu napisało po tygodniu będzie bardzo trudne, a po roku nie będziesz wiedział zupełnie o co chodzi.
Jak procedurę nazwałeś np. Oblicz_Pole, a nie OP, to po roku będziesz wiedział do czego służy. Mało tego, powinieneś mieć to zapisane w dokumentacji, bo nie da się do końca uniknąć nazewnictwa, którego znaczenie nie uleci nam po jakimś czasie z pamięci.
Te zabawy tutaj z VBA czy choćby ten skrypt do którego link podałeś, to są naprawdę drobiazgi, w których i bez zachowania porządku da się połapać, ale poważne aplikacje to są tysiące linii kodu, dziesiątki różnych bibliotek i innych pomocniczych plików, pisanych często przez kilkunastu czy kilkudziesięciu ludzi, bez precyzyjnego planu i dyscypliny nie da się takiego projektu złożyć do, za przeproszeniem, kupy.
|
|