ÏËÀÃÈÍ -xBASEVIEW- ÄËß -TOTAL COMMANDER-. ÂÂÅÄÅÍÈÅ |
Ïî äîëãó ñëóæáû ÿ çàíÿò ñåé÷àñ êîíâåðòàöèåé äàííûõ èç òàáëèö áàçû äàííûõ "FoxPro" â òàáëèöû áàçû äàííûõ "IBM DB 2".
Ýòî íå ëîáîâàÿ êîíâåðòàöèÿ èç àòðèáóòîâ îäíîé áàçû â òàêèå æå àòðèáóòû äðóãîé áàçû, ïîòîìó âñ¸ ýòî äåëàåòñÿ åù¸ è ÷åðåç "Java". SQL'åì åäèíûì ïðîáëåìó íå ðåøèòü. Ñ ó÷¸òîì òîãî, ÷òî ÿ íå óìåþ ðàáîòàòü ñ "FoxPro" âîîáùå íèêàê, âûáîð ïðèâåä¸ííûõ íèæå îáõîäíûõ ìàí¸âðîâ íå îáñóæäàåòñÿ è íå êðèòèêóåòñÿ. Ìû âñåãäà ïëàòèì çà íåçíàíèå ÷åãî-ëèáî âðåìåíåì, ïîòðà÷åííûì íà òî, ÷òîáû îáîéòè ýòî íåçíàíèå, ëèáî íà òî, ÷òîáû ýòî íåçíàíèå óñòðàíèòü. ß íå çàõîòåë ñïåöèàëüíî èçó÷àòü "FoxPro" äëÿ ðåøåíèÿ ÷àñòíîé çàäà÷è. Âåðîÿòíî, êòî-òî òîæå ïîéä¸ò ïî ñòîëü æå èçâèëèñòîìó ïóòè.
Ñ òî÷êè çðåíèÿ íàðàùèâàíèÿ íàâûêîâ ïðîãðàììèðîâàíèÿ âûáðàííûé ìíîþ ïóòü èíòåðåñåí è ïðàêòè÷åñêè ïîëåçåí, ïîòîìó ÿ íå ñòàë îòêàçûâàòüñÿ îò íåãî.  ðàìêàõ çàäà÷è ÿ âïåðâûå èñïîëüçîâàë ïåðå÷èñëÿåìûé òèï enum è ïîíÿë, ÷òî ýòî óäîáíî. Äî òîãî æå, êàê ñòàë ðåøàòü ýòó çàäà÷ó, â enum'àõ íå âèäåë âîîáùå íèêàêîãî ñìûñëà äëÿ ðåøåíèÿ ïðèêëàäíûõ èíæåíåðíûõ çàäà÷. Íî îá enum'àõ â ýòîé ñòàòüå óæ òî÷íî ðàññêàçûâàòü äîëãî íå áóäó - îíè òðåáóþò îòäåëüíîãî ðàññìîòðåíèÿ è... Ìíå êàæåòñÿ, ïðè ðåøåíèè ÿ çàáèâàë ãâîçäè ìèêðîñêîïîì, íî òî, êàêèìè ïîëó÷èëñÿ êîíâåðòåð, ìåíÿ ïîëíîñòüþ óñòðàèâàåò. Êîä êàæåòñÿ ÷èòàåìûì, ïðîçðà÷íûì, à ñàìîå ãëàâíîå - óäîáíûì. Òî åñòü åñëè ãäå-òî âäðóã â ìîåé çàäà÷å ïîìåíÿåòñÿ ïîðÿäîê ñëåäîâàíèÿ ñòîëáöîâ ñ íàèìåíîâàíèÿìè àòðèáóòîâ, òî ìíå íå íóæíî áóäåò ïåðåïèñûâàòü ìàññèâíûå êîíñòðóêöèè, èíèöèàëèçèðóþùèå äàííûå. Ïîòðåáóåòñÿ òîëüêî ñëåãêà ïîäïðàâèòü enum'û. Ñ ýòîé òî÷êè çðåíèÿ, äà, ïîëó÷èëîñü î÷åíü ãèáêî.

Ñïåðâà èçëîæó ïëàí ñâîèõ äåéñòâèé, ÷òîáû âàì ñòàëî ïîíÿòíî: ÷èòàòü èëè íå ÷èòàòü äàííóþ ñòàòüþ äàëüøå:
1. Íàéäåí ïëàãèí "Apache.POI" äëÿ "Java".
2. Îáùèé âèä òàáëèöû áàçû äàííûõ "FoxPro" - ýòî äèðåêòîðèÿ ñ ôàéëàìè: "*.CDX + *.DBF + *.FPT".
3. Íåóäà÷à ñ "DBF Converter 3.97".
4. Íåóäà÷à ñ "DBF - SQL Expert".
5. Õîðîøî áûòü ïîëüçîâàòåëåì "Total Commander".
6. Âñÿ æèçíü - ÷åðåäà óäà÷ è íåóäà÷.
7. Îáíàðóæåíèå "xBaseView" â ïàêåòíîé ñáîðêå "Total Commander 8.0 TechAdmin RC3".
8. Ïîäêëþ÷åíèå "xBaseView" ê "Total Commander 7.03" è "Total Commander 9.0à".
9. Êîíâåðòàöèÿ ïî ñõåìå "FoxPro -> xBaseView -> HTML -> Excel -> Java -> IBM DB2".
Êàê âèäèòå, ïîëó÷àåòñÿ áîëüøå îáçîð ñëîæèâøåéñÿ ñèòóàöèè. Íî åñëè èäåÿ âàñ çàõâàòèëà è çàõî÷åòñÿ óçíàòü ïîäðîáíîñòè, òî ÿ ïîòðóæóñü íàä òåì, ÷òîáû ïðåäñòàâèòü êîíêðåòíûå èíñòðóêöèè è ðåàëèçàöèè.
À â ÷¸ì, ñîáñòâåííî, ïðîáëåìà êîíâåðòàöèè? Ïðîáëåìà ñóùåñòâóåò è êðîåòñÿ îíà â òîì, ÷òî ÿ íå íàø¸ë ïðÿìîãî ïëàãèíà äëÿ "Java", êîòîðûé âñêðûâàåò ôàéëû áàçû "FoxPro". Âåðîÿòíî, ýòî ìîÿ ëè÷íàÿ ïðîáëåìà - íå áîëåå. Íî ÿ å¸ ðåøèë - ÿ íàø¸ë ïëàãèí "Apache.POI". Îí ïðåêðàñíî äðóæèò ñ îôèñíûìè ïðèëîæåíèÿìè "Microsoft Word" è "Microsoft Excel". Î÷åíü óäîáíî è äðóæåñòâåííî ïèøåò è ÷èòàåò "XLS", "XLSX", "DOC" è "DOCX". Ïîòîìó ÿ è ðåøèë âñ¸ ñâåñòè ê àâòîìàòèçàöèè êîíâåðòàöèè "Excel -> IBM DB 2" ÷åðåç "Java". À èñõîäíûå äàííûå, òî åñòü "Excel" èç "FoxPro" ïîäãîòîâèòü âðó÷íóþ. È ðå÷ü àáñîëþòíî íå èä¸ò î òîì, ÷òîáû âáèâàòü ñîòíè òûñÿ÷ ñòðîê âðó÷íóþ, à èìåþ â âèäó èñïîëüçîâàíèå ñòîðîííèõ ñðåäñòâ ëîáîâîé, óíèâåðñàëüíîé êîíâåðòàöèè, êîòîðûå êòî-òî è êîãäà-òî äî ìåíÿ óæå íàïèñàë.

Ñïåðâà ÿ íàø¸ë îíëàéíîâûé êîíâåðòåð "DBF" â "XLS". È äàííûé ïóòü êàçàëñÿ ïðåêðàñíûì ðîâíî äî ìîìåíòà, ïîêà ÿ íå íàòêíóëñÿ íà òàáëèöû ñ òàê íàçûâàåìûìè Memo-ïîëÿìè. Àãðõ!... Ýòî áûëà ìîÿ íåêîòîðàÿ ãîëîâíàÿ áîëü. Ìíîãèå-ìíîãèå ÷àñû áèåíèÿ ãîëîâîé îá ñòåíó. À âñ¸ ïîòîìó, ÷òî íåêîòîðûå òàáëèöû áàçû äàííûõ "FoxPro" íàäî ðàññìàòðèâàòü â ñîâîêóïíîñòè èç òð¸õ ôàéëîâ "*.CDX + *.DBF + *.FPT". FPT êàê ðàç ñîäåðæèò êîíòåíò Ìåìî-ïîëåé. Çàãðóçèòü â îíëàéíîâûé êîíâåðòåð íåñêîëüêî ôàéëîâ îêàçàëîñü íåâîçìîæíî. Ñòàë èñêàòü äðóãèå ðåøåíèÿ.

È íàø¸ë êëèåíò-êîíâåðòåð ("DBF Converter 3.97"), êîòîðûé ïîçâîëÿåò ðàáîòàòü ñ äèðåêòîðèÿìè, â êîòîðûõ ëåæàò òðè ôàéëà. Îí ïðåêðàñíî ðàáîòàåò, íî òîëüêî äëÿ 50 ñòðîê ëþáîé òàáëèöû áàçû äàííûõ áåñïëàòíî. Õîòèòå áîëüøåãî - ïëàòèòå äåíåæêó. È ÿ óæå ãîòîâ áûë êóïèòü ñåðèéíûé íîìåð äëÿ ýòîãî ïðîäóêòà... Êóïèë áû, åñëè áû ýòî ñòîèëî, ñêàæåì, 600 - 1 500 ðóáëåé. Ïðàâäà. Ýòî òî, ÷òî ìíå íå æàëêî îòäàòü çà óñëîâíî áåñïëàòíîå ÏÎ. ß æå óâèäåë öåíó â 2 700 ðóáëåé è ðåçêî ïåðåäóìàë ïëàòèòü ðàçðàáîò÷èêàì, òåì áîëåå, çàáóãîðíûì. Ñíîâà ñòàë èñêàòü èíûå ïóòè ðåøåíèÿ ïðîáëåìû.

Ìíîãî ñòàòåé ïåðåðûë, çíàþ, ÷òî ìîæíî íàïèñàòü ñâîé ñîáñòâåííûé, òàêîé æå êîíâåðòåð, íî íàäî óìåòü ðàáîòàòü ñ ôàéëàìè ÷åðåç èõ øåñòíàäöàòåðè÷íîå ïðåäñòàâëåíèå, âûñ÷èòûâàòü áàéòû, ôëàãè è... Íåò, íå ñèë¸í ÿ â Àññåìáëåðå, ïîòîìó íà ýòîì ýòàïå ÿ ñíîâà ñëîìàëñÿ...

Íàø¸ë ñòàòüþ, â êîòîðîé òîâàðèù, ñïàñèáî åìó, ïîðåêîìåíäîâàë ñêà÷àòü è âîñïîëüçîâàòüñÿ áåñïëàòíîé ïðîãðàììîé "DBF - SQL Expert". Îí ïîÿñíèë, ÷òî ñåé ïðîäóêò â ïåðâûõ ñòðî÷êàõ ïîèñêîâèêîâ íå ñâåòèòñÿ, ïîòîìó èñêàòü äèñòðèáóòèâ ñëåäóåò ïðèöåëüíî. Ó ìåíÿ ïîëó÷èëîñü. Óâû, äàëåå ïîïëûë... Âîîðóæèâøèñü åãî èíñòðóêöèåé, çàïóñòèòü áàçó è ïîäêëþ÷åíèå ê íåé ìíå òàê è íå óäàëîñü. Âåðîÿòíî, îí êàêèå-òî íàñòðîéêè è øàãè ïðîïóñòèë èç ñåðèè: "Ýòî è ¸æèêó ïîíÿòíî". Íó, ó ìåíÿ ñ ïîëïèíêà íå ïîëó÷èëîñü. Ïëþñ íà êàæäûé ÷èõ ïðîãðàììà ðåàãèðîâàëà ëèáî îøèáêîé, ëèáî ïðåäóïðåæäåíèåì. Âû æå çíàåòå, êàê ýòî ðàçäðàæàåò? Íà ýòîé ïî÷âå ó ìåíÿ ñëîæèëîñü âïå÷àòëåíèå, ÷òî, ýëåìåíòàðíî, ñ ñîâìåñòèìîñòüþ ÏÎ è ÎÑ áåäà. Òàì æå êðàéíÿÿ âåðñèÿ äàòèðîâàíà òî ëè 2005, òî ëè 2006 ãîäîì. ×òî åù¸ ÿ ìîã ïîäóìàòü? Èìåííî ýòî çàñòàâèëî óñîìíèòüñÿ â âîçìîæíîñòè äàëüíåéøåãî èñïîëüçîâàíèÿ ïðîãðàììû "DBF - SQL Expert". Õîòÿ, ñóäÿ ïî ñêðèíøîòàì, åñëè áû âñ¸ çàðàáîòàëî, òî ÿ áû ïîëó÷èë íóæíûé ìíå ðåçóëüòàò îò íå¸.

ß óæå ïîðûâàëñÿ ñàì ñåñòü è íàïèñàòü ïðîãðàììó â îáõîä øåñòíàäöàòåðè÷íîãî ïðåäñòàâëåíèÿ. Ïëàíèðîâàë ðàçáèðàòü FPT-ôàéëû ïîñòðî÷íî è ðàñêèäûâàòü çíà÷åíèÿ ïî ñîîòâåòñòâóþùèì Memo-ïîëÿì. Îçíàêîìèâøèñü ñ òåêñòîâûì ïðåäñòàâëåíèåì FPT-ôàéëà è ñîïîñòàâèâ åãî ñ ñîäåðæèìûì òàáëèöû áàçû äàííûõ, ÿ íå íàø¸ë ïðÿìîé çàêîíîìåðíîñòè äëÿ ñòðîêîâîãî ðàçáîðà ôàéëà. Ñ îäíîé ñòîðîíû, äàííûå ëåæàòü ïðîçðà÷íî, íî ñ äðóãîé - ðàçäåëèòåëüíûå ïðèçíàêè ó êàæäîé èç ñòðîê ðàçëè÷íû. Ðåãóëÿðíûìè âûðàæåíèÿìè áåäå íå ïîìî÷ü.

Äàëåå ñëó÷èëàñü áîëüøàÿ óäà÷à. Ñëîâíî ëó÷ ñîëíöà ïðîáèëñÿ ñðåäü íåïðîãëÿäíûå òó÷è. ß ñëó÷àéíî îòêðûë â "Total Commander" íå FPT-ôàéë, à DBF-ôàéë è... îí îòêðûëñÿ ðîâíî òàê æå, êàê îòêðûâàëñÿ â "FoxPro" íà êîìïüþòåðàõ ìîèõ êîëëåã ïî "ïðîèçâîäñòâåííîìó öåõó". È â ìåíþ, íà ñ÷àñòüå, ÿ íàø¸ë "Ýêñïîðò"! Òàì äàæå áûë ïðÿìîé ýêñïîðò â "Excel", íî òîò ëîìàëñÿ íà ñëèøêîì äëèííûõ ñòðîêàõ - íå êîíâåðòèðîâàë òàáëèöó öåëèêîì. Ôèãíÿ âîïðîñ! Íå äàðîì æå ÿ ñòóäåíòîâ ó÷ó íà ëàáîðàòîðíûõ ðàáîòàõ ïî "Èíôîðìàöèîííîìó îáåñïå÷åíèþ ñèñòåì óïðàâëåíèÿ" ÷åðåç HTML-äîêóìåíòû ïåðåíîñèòü äàííûå ñíà÷àëà â "Excel", à çàòåì èìïîðòèðîâàòü èõ â "Access". Ñàì ïîø¸ë òåì æå ïóò¸ì. Îáîëî÷êà ïðåêðàñíî, áåçîøèáî÷íî âûãðóçèëà ìíå â HTML-äàííûå, ÿ ïåðåáðîñèë èõ ïðîâåðåííûì ñïîñîáîì, èñêëþ÷àþùèì èñêàæåíèå èíôîðìàöèè, â "Excel" è ïîëó÷èë íîðìàëüíûé íàáîð èñõîäíûõ äàííûõ, êîòîðûå íå ñòûäíî ïåðåäàâàòü íà îáðàáîòêó ïîñðåäñòâîì "Java".

Òåïåðü ñàìîå èíòåðåñíîå - êàæäûé ëè "Total Commander" îáëàäàåò òàêîé êëàññíîé øòóêîé, ïîçâîëÿþùåé ïðîñìàòðèâàòü òàáëèöû áàçû äàííûõ "FoxPro"? Âîò òóò íþàíñ è ñíîâà äëÿ ìåíÿ óäà÷à. Ïðîâåðåíî - íå êàæäûé. ß ïðîâåðèë íà íåòáóêå, ãäå óñòàíîâëåí "Total Commander 7.03" è ôîêóñ íå óäàëñÿ. Âñ¸ äåëî áûëî èìåííî â "Total Commander 8.0 TechAdmin RC3". Îí ñëó÷àéíî ïîïàë êî ìíå íà êîìïüþòåð ìíîãî ëåò íàçàä. Òîâàðèù áûë â ãîñòÿõ è óâèäåë, ÷òî ÿ ïîëüçóþñü "Total Commander"'îì. Ñîñòîÿëñÿ äèàëîã:
- À òû ÷òî, ïîëüçóåøüñÿ "Total Commander"'îì?
- Äà, ïðèâûê óæå, íðàâèòñÿ ìíå, íå ìîãó óæå áåç íåãî.
- Òû ÷òî, ñåðü¸çíî?
- Íó äà, õîðîøàÿ ïðîãðàììà, àíàëîãîâ äëÿ ðàáîòû ñ ôàéëàìè ÿ íå âèæó.
- Âñ¸-âñ¸, òû ìåíÿ óáåäèë, áîëåå íè÷åãî ãîâîðèòü íå íàäî. Âèæó, ÷òî ÿâëÿåøüñÿ íàñòîÿùèì ïîëüçîâàòåëåì "Total Commander"'à - íàøà ñåêòà. *Ïîñìåÿëñÿ* Ïîçâîëü ïîäåëþñü ñ òîáîé ïàêåòîì, êîòîðûé ïîëíîñòüþ ïåðåâåðí¸ò òâî¸ ïðåäñòàâëåíèå î êîììàíäåðå? Óâåðÿþ, òû áîëüøå íå çàõî÷åøü ïîëüçîâàòüñÿ áàçîâîé âåðñèåé ïîñëå ýòîãî.
ß âîçðàçèòü íå óñïåë, ÷òî ìåíÿ è áàçîâàÿ âåðñèÿ âïîëíå óñòðàèâàåò, êàê òîò óñòàíîâèë ôëýøêó è íà÷àë ðàñïàêîâûâàòü äèñòðèáóòèâ: "Íå ïîíðàâèòñÿ - óäàëèøü. Íî óâåðÿþ òåáÿ, íå áûëî åù¸ íè îäíîãî ÷åëîâåêà, êîìó áû íå ïîíðàâèëàñü ýòà ñáîðêà". ß áûë çîë òîãäà íà ñâîåãî òîâàðèùà, êîòîðûé ñòîëü âîëüíî ïîâ¸ë ñåáÿ ñ ìîèì êîìïüþòåðîì, íî ñåé÷àñ, ñïóñòÿ âðåìÿ, ÿ áåçìåðíî åìó áëàãîäàðåí çà ýòîò íàâîðî÷åííûé, àäìèíñêèé "Total Commander". Èìåííî â í¸ì íàø¸ëñÿ ïëàãèí "xBaseView".  í¸ì è òîëüêî â í¸ì. Äèñòðèáóòèâ-òî îí ìíå, óâû, íå îñòàâèë. ß ïîèñêàë àíàëîãè÷íóþ ñáîðêó, áîëåå íîâóþ. Íàø¸ë. Íî â íåé ïëàãèíà íóæíîãî íå îêàçàëîñü. È òàêîå áûâàåò.

Ñíîâà ïðèøëîñü õèìè÷èòü è ïðîâîäèòü ýêñïåðèìåíòû. È åñëè â ïàêåòíîé ñáîðêå âñå ïëàãèíû ïðåäóñòàíîâëåíû è êîððåêòíî ññûëàþòñÿ íà ñâîè èñòî÷íèêè (ÿ áåç ïðîáëåì ñóìåë íàéòè ïðàâèëüíóþ äèðåêòîðèþ, äà âûöåïèòü åãî), òî â áàçîâóþ ñáîðêó åãî íå äîñòàòî÷íî ïðîñòî ïîëîæèòü â òàêóþ æå ïàïêó, ÷òîáû îí çàðàáîòàë. Åãî è ïîäêëþ÷èòü ñóìåòü íàäî. Îí æå ïëàãèí, òî åñòü "plug-in", ïðèìî÷êà, êîòîðàÿ ïîäêëþ÷àåòñÿ èçâíå. Áëàãî, ñ ýòèì ìîìåíòîì ÿ îïåðàòèâíî ðàçîáðàëñÿ è ñóìåë èç äâóõ áàçîâûõ âåðñèé "Total Commander"'à (7.03 è 9.0à) ñîîðóäèòü òó, êîòîðàÿ ïîíàäîáèòñÿ ìíå äëÿ êîíâåðòàöèè äàííûõ â äàëüíåéøåì. Äà, ìíå æå íóæíî áûëî âîñïðîèçâåñòè òî÷íî òàêóþ æå ñèòóàöèþ è íà ðàáîòå. Äà, ÿ ìîã âñ¸ ñäåëàòü è äîìà, íî ÿ òàê æå ïîíèìàë, ÷òî ñåé÷àñ ÿ ðàáîòàþ ñ äàííûìè 2017 ãîäà, òî÷íî òàêèå æå ìàíèïóëÿöèè ïîòðåáóåòñÿ ïðîâåñòè ïîçæå íàä äàííûìè 2018 ãîäà, à ïîòîì, äàñò Áîã, âñ¸ óæå áóäåò âàðèòüñÿ â íîâîé ñèñòåìå, ãäå ïîäîáíûå ñâèñòîïëÿñêè íå ïîòðåáóþòñÿ. Ñìûñë ïèñàòü êîíâåðòåð òîëüêî íà äâà ãîäà, áåçóñëîâíî, åñòü. Óæ áîëüíî âåëèê íàêîïèâøèéñÿ îáú¸ì äàííûõ à "FoxPro". Ïðîñòî òàê íåñêîëüêèõ äåâî÷åê-ñòóäåíòîê âáèâàòü íå ïîñàäèøü - íóæíî îòâå÷àòü çà áåçîøèáî÷íîñòü ïåðåíîñà. Òàê ÷òî ïóòü îäèí - àâòîìàòèçàöèÿ, íå èíà÷å.

Ñåðèÿ ñîîáùåíèé "Vue.js":
×àñòü 1 - ÏËÀÃÈÍ -xBASEVIEW- ÄËß -TOTAL COMMANDER-. ÂÂÅÄÅÍÈÅ
×àñòü 2 - JSON TEST
×àñòü 3 - ÔÐÅÉÌÂÎÐÊ VUE.JS. Ñ ×ÅÃÎ ÍÀ×ÀÒÜ. ÐÀÁÎ×ÈÉ ÏÐÈÌÅÐ
×àñòü 4 - ÀÂÒÎÌÀÒÈÇÈÐÓÅÌ ÑÎÑÒÀÂËÅÍÈÅ ÑÏÈÑÊÎÂ Ñ VUE.JS. ÏÐÈÌÅÐÛ
×àñòü 5 - ÄÅËÀÅÌ ÏÐÎÃÐÀÌÌÈÐÎÂÀÍÈÅ ÑÎ VUE.JS ÓÄÎÁÍÅÅ È ÏÐÈßÒÍÅÅ
×àñòü 6 - Ó×ÅÁÍÎ-ÌÅÒÎÄÈ×ÅÑÊÎÅ
| Ðóáðèêè: | Ñîáûòèÿ Êîìïüòåðíîå ÀÓÈøíîå |
| Êîììåíòèðîâàòü | « Ïðåä. çàïèñü — Ê äíåâíèêó — Ñëåä. çàïèñü » | Ñòðàíèöû: [1] [Íîâûå] |
| Êîììåíòèðîâàòü | « Ïðåä. çàïèñü — Ê äíåâíèêó — Ñëåä. çàïèñü » | Ñòðàíèöû: [1] [Íîâûå] |