Êîìïüþòåðíûé ôîðóì OSzone.net  

Êîìïüþòåðíûé ôîðóì OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [ðåøåíî] Ãåíåðàòîð øòðèõêîäà EAN-13 (http://forum.oszone.net/showthread.php?t=350594)

morgan1991 31-01-2022 23:48 2979070

Ãåíåðàòîð øòðèõêîäà EAN-13
 
Âëîæåíèé: 1
Çäðàâñòâóéòå!
Ñóòü ïðîáëåìû:
Íóæíî ñãåíåðèðîâàòü øòðèõêîä è ñîõðàíèòü åãî â êàðòèíêó. Â èäåàëå â JPG.
Íóæåí èìåííî ôîðìàò EAN-13 èç 13 öèôð.
Ïðè÷åì õîòåëîñü áû íå èñïîëüçîâàòü øðèôò ean13.ttf. Èëè êàê òî èñïîëüçîâàòü åãî áåç óñòàíîâêè â îïåðàöèîííóþ ñèñòåìó. Ò.ê. íåò ïðàâ äîñòóïà.
Íàøåë â èíòåðíåòå íåñêîëüêî ðàáî÷èõ âàðèàíòîâ, íî îíè âñå ãåíåðèðóþò òîëüêî èç 12 ñèìâîëüíîãî ØÊ, à íóæíî èìåííî 13.

Âîò íàïðèìåð îäèí èç íèõ. Âñå ôàéëû ñ UDF âî âëîæåíèè.


Êîä:

; TTF fonts must be installed in system first

#AutoIt3Wrapper_run_obfuscator=y
#Obfuscator_parameters=/so

#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>

#include <print.au3>
#include <barcode.au3>

$barcode_test = GUICreate("BarCode Test", 601, 174, -1, -1)
GUICtrlCreateLabel("Input:", 11, 10, 30, 17)
$Input = GUICtrlCreateInput("", 41, 8, 120, 21)
GUICtrlCreateLabel("Output:", 171, 10, 38, 17)
$Output = GUICtrlCreateInput("", 209, 8, 120, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
$print = GUICtrlCreateButton("Print", 340, 7, 39, 23)
GUICtrlCreateLabel("Type:", 387, 10, 28, 17)
$type = GUICtrlCreateCombo("", 417, 8, 91, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Code 128|EAN 8|EAN 13|Code 2 of 5 i|Code 3 of 9", "Code 128")
GUICtrlCreateLabel("Size:", 517, 10, 25, 17)
$size = GUICtrlCreateCombo("", 543, 8, 47, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "12|18|24|36|48|60|72", "48")
$barcode = GUICtrlCreateLabel("", 10, 39, 580, 130)
GUICtrlSetFont(-1, 48, 400, 0, "Code 128")
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUISetState(@SW_SHOW)

GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $type
            ChangeFont()
            ApplyBarcode()
        Case $size
            ChangeFont()
        Case $print
            Print()
    EndSwitch
WEnd

Func WM_COMMAND($hWinHandle, $iMsg, $wParam, $lParam)
    If _WinAPI_HiWord($wParam) = $EN_CHANGE And _WinAPI_LoWord($wParam) = $Input Then
        ApplyBarcode()
    EndIf
EndFunc

Func ChangeFont()
    Switch GUICtrlRead($type)
        Case 'Code 128'
            $font_name = 'Code 128'
        Case 'EAN 8','EAN 13'
            $font_name = 'Code EAN13'
        Case 'Code 2 of 5 i'
            $font_name = 'Code 2 of 5 interleaved'
        Case 'Code 3 of 9'
            $font_name = 'Code 3 de 9'
    EndSwitch
    GUICtrlSetFont($barcode, GUICtrlRead($size), 400, 0, $font_name)
EndFunc

Func ApplyBarcode()
    Switch GUICtrlRead($type)
        Case 'Code 128'
            $barcode_data = barcode_128(GUICtrlRead($Input))
        Case 'EAN 8'
            $barcode_data = barcode_ean8(GUICtrlRead($Input))
        Case 'EAN 13'
            $barcode_data = barcode_ean13(GUICtrlRead($Input))
        Case 'Code 2 of 5 i'
            $barcode_data = barcode_25i(GUICtrlRead($Input))
        Case 'Code 3 of 9'
            $barcode_data = barcode_39(GUICtrlRead($Input))
    EndSwitch
    GUICtrlSetData($Output, $barcode_data)
    GUICtrlSetData($barcode, $barcode_data)
EndFunc

; print given text on default printer in given size by all available barcode types
Func Print()
    $sPrinter = _GetDefaultPrinter()
    If $sPrinter = "" Then Return

    $hPrintDC = _WinAPI_CreateDC("winspool", $sPrinter)
    _InitPrinter($hPrintDC, "Printing Barcodes from AutoIt") ; print job name

    $hFont = _CreateFont_Simple('Arial', 12, $FW_BOLD)
    $hFontOld = _WinAPI_SelectObject($hPrintDC, $hFont)
    _TextOut_Centered($hPrintDC, 500, 'Input data: ' & GUICtrlRead($Input), 0xFF0000)
    _WinAPI_SelectObject($hPrintDC, $hFontOld)
    _WinAPI_DeleteObject($hFont)

    $hFont = _CreateFont_Simple('Courier', 10, $FW_NORMAL)
    $hFontOld = _WinAPI_SelectObject($hPrintDC, $hFont)
    _WinAPI_SetTextColor($hPrintDC, 0x000000)
    _TextOut_Centered($hPrintDC, 1400, 'Code 128')
    _TextOut_Centered($hPrintDC, 2400, 'EAN 8')
    _TextOut_Centered($hPrintDC, 3400, 'EAN 13')
    _TextOut_Centered($hPrintDC, 4400, 'Code 2 of 5 i')
    _TextOut_Centered($hPrintDC, 5400, 'Code 3 of 9')
    _WinAPI_SelectObject($hPrintDC, $hFontOld)
    _WinAPI_DeleteObject($hFont)

    $hFont = _CreateFont_Simple('Code 128', GUICtrlRead($size), $FW_NORMAL)
    $hFontOld = _WinAPI_SelectObject($hPrintDC, $hFont)
    _TextOut_Centered($hPrintDC, 1500, barcode_128(GUICtrlRead($Input)))
    _WinAPI_SelectObject($hPrintDC, $hFontOld)
    _WinAPI_DeleteObject($hFont)

    $hFont = _CreateFont_Simple('Code EAN13', GUICtrlRead($size), $FW_NORMAL)
    $hFontOld = _WinAPI_SelectObject($hPrintDC, $hFont)
    _TextOut_Centered($hPrintDC, 2500, barcode_ean8(GUICtrlRead($Input)))
    _WinAPI_SelectObject($hPrintDC, $hFontOld)
    _WinAPI_DeleteObject($hFont)

    $hFont = _CreateFont_Simple('Code EAN13', GUICtrlRead($size), $FW_NORMAL)
    $hFontOld = _WinAPI_SelectObject($hPrintDC, $hFont)
    _TextOut_Centered($hPrintDC, 3500, barcode_ean13(GUICtrlRead($Input)))
    _WinAPI_SelectObject($hPrintDC, $hFontOld)
    _WinAPI_DeleteObject($hFont)

    $hFont = _CreateFont_Simple('Code 2 of 5 interleaved', GUICtrlRead($size), $FW_NORMAL)
    $hFontOld = _WinAPI_SelectObject($hPrintDC, $hFont)
    _TextOut_Centered($hPrintDC, 4500, barcode_25i(GUICtrlRead($Input)))
    _WinAPI_SelectObject($hPrintDC, $hFontOld)
    _WinAPI_DeleteObject($hFont)

    $hFont = _CreateFont_Simple('Code 3 de 9', GUICtrlRead($size), $FW_NORMAL)
    $hFontOld = _WinAPI_SelectObject($hPrintDC, $hFont)
    _TextOut_Centered($hPrintDC, 5500, barcode_39(GUICtrlRead($Input)))
    _WinAPI_SelectObject($hPrintDC, $hFontOld)
    _WinAPI_DeleteObject($hFont)

    _DeInitPrinter($hPrintDC)
EndFunc


Âîò åùå íàøåë ðåøåíèå, íî íåïîíÿòíî íà êàêîì ÿçûêå. Ìîæåò áóäåò ïîëåçíî:

Êîä:

                PROGRAM
                MAP
                  MODULE('Windows API')
                    AddFontResource(*CSTRING FontName),RAW,LONG,PASCAL,NAME('AddFontResourceA')
                  END
                  EAN13(STRING Barcode), STRING
                END

LOC:FontFileName CSTRING(20)
LOC:Barcode1    CSTRING(20)
LOC:Barcode2    CSTRING(20)
LOC:Barcode3    CSTRING(20)

Window WINDOW('Use EAN13 Font'),AT(,,161,140),FONT('MS Sans Serif',8,,FONT:regular),CENTER,GRAY,DOUBLE
      STRING(@s20),AT(18,9),USE(LOC:Barcode1)
      STRING(@s20),AT(18,48),USE(LOC:Barcode2)
      STRING(@s20),AT(18,97),USE(LOC:Barcode3)
    END

  CODE
  LOC:FontFileName = 'EANG000.TTF'
  IF NOT AddFontResource(LOC:FontFileName)
    MESSAGE('Error on load: ' & LOC:FontFileName,'Warning',ICON:Hand)
  END
  OPEN(Window)
  ?LOC:Barcode1{PROP:Font} = 'EanGnivc'
  ?LOC:Barcode1{PROP:FontSize} = 20
  ?LOC:Barcode2{PROP:Font} = 'EanGnivc'
  ?LOC:Barcode2{PROP:FontSize} = 30
  ?LOC:Barcode3{PROP:Font} = 'EanGnivc'
  ?LOC:Barcode3{PROP:FontSize} = 40
  LOC:Barcode1 = EAN13(2340600973341)
  LOC:Barcode2 = EAN13(6945198851772)
  LOC:Barcode3 = EAN13(2901214010046)
  ACCEPT
  END
  CLOSE(Window)

EAN13      FUNCTION(STRING Barcode)!, STRING
a          LONG(48)
b          LONG(65)
c          LONG(97)
d          LONG(35)
i          LONG
Cod        LONG,DIM(13,2)
f          LONG,DIM(6,10)
strEAN13    STRING(20)
  CODE
  IF LEN(CLIP(BarCode)) <> 13
    MESSAGE('Øòðèõ êîä çà ïðåäåëàìè îòâåäåííîãî äèàïàçîíà')
    RETURN ''
  END
  f[1,0] = a; f[1,1] = a; f[1,2] = a; f[1,3] = a; f[1,4] = a
  f[1,5] = a; f[1,6] = a; f[1,7] = a; f[1,8] = a; f[1,9] = a
  f[2,0] = a; f[2,1] = a; f[2,2] = a; f[2,3] = a; f[2,4] = b
  f[2,5] = b; f[2,6] = b; f[2,7] = b; f[2,8] = b; f[2,9] = b
  f[3,0] = a; f[3,1] = b; f[3,2] = b; f[3,3] = b; f[3,4] = a
  f[3,5] = b; f[3,6] = b; f[3,7] = a; f[3,8] = a; f[3,9] = b
  f[4,0] = a; f[4,1] = a; f[4,2] = b; f[4,3] = b; f[4,4] = a
  f[4,5] = a; f[4,6] = b; f[4,7] = b; f[4,8] = b; f[4,9] = a
  f[5,0] = a; f[5,1] = b; f[5,2] = a; f[5,3] = b; f[5,4] = b
  f[5,5] = a; f[5,6] = a; f[5,7] = a; f[5,8] = b; f[5,9] = b
  f[6,0] = a; f[6,1] = b; f[6,2] = b; f[6,3] = a; f[6,4] = b
  f[6,5] = b; f[6,6] = a; f[6,7] = b; f[6,8] = a; f[6,9] = a
  LOOP i = 1 TO 13
    Cod[i, 1] = SUB(BarCode, i, 1)
  END
  LOOP i = 2 TO 7
    Cod[i, 2] = f[i - 1, Cod[1, 1]]
  END
  strEAN13 = CHR(Cod[1, 1] + 35)
  strEAN13 = CLIP(strEAN13) & CHR(33)
  LOOP i = 2 TO 7
    strEAN13 = CLIP(strEAN13) & CHR(Cod[i, 1] + Cod[i, 2])
  END
  strEAN13 = CLIP(strEAN13) & CHR(45)
  LOOP i = 8 TO 13
    strEAN13 = CLIP(strEAN13) & CHR(Cod[i, 1] + c)
  END
  strEAN13 = CLIP(strEAN13) & CHR(33)
  RETURN strEAN13

Ïîìîãèòå ïîæàëóéñòà.

morgan1991 01-02-2022 19:30 2979131

Íàøåë åùå èíôîðìàöèè íà âèêè. Íà ñëîâàõ âñå ïðîñòî.

Ñòðóêòóðà êîäà EAN-13

Öèòàòà:

Êîä:

Ïåðâàÿ      Ïåðâàÿ (ëåâàÿ)          Âòîðàÿ (ïðàâàÿ)
öèôðà            ãðóïïà èç 6 öèôð        ãðóïïà èç 6 öèôð
0                      LLLLLL                      RRRRRR
1                      LLGLGG                      RRRRRR
2                      LLGGLG                      RRRRRR
3                      LLGGGL                      RRRRRR
4                      LGLLGG                      RRRRRR
5                      LGGLLG                      RRRRRR
6                      LGGGLL                      RRRRRR
7                      LGLGLG                      RRRRRR
8                      LGLGGL                      RRRRRR
9                      LGGLGL                      RRRRRR


Êîäèðîâàíèå öèôð
Öèòàòà:

Êîä:


Öèôðà        L-êîä        R-êîä        G-êîä
0        0001101        1110010        0100111
1        0011001        1100110        0110011
2        0010011        1101100        0011011
3        0111101        1000010        0100001
4        0100011        1011100        0011101
5        0110001        1001110        0111001
6        0101111        1010000        0000101
7        0111011        1000100        0010001
8        0110111        1001000        0001001
9        0001011        1110100        0010111


Èñòî÷íèê

Èñõîäÿ èç ýòîãî:
0 = 1 ïèêñåëü áåëîãî öâåòà,
1 = 1 ïèêñåëü ÷åðíîãî öâåòà.

Òàêæå íàøåë ðåøåíèå íà C++.
Êîä:

int shtrixcode[13] = {4,6,0,1,2,5,0,2,0,2,1,7,4};
 
int sxem_table[10][12] = { {0,0,0,0,0,0,1,1,1,1,1,1},
                          {0,0,2,0,2,2,1,1,1,1,1,1},
                          {0,0,2,2,0,2,1,1,1,1,1,1},
                          {0,0,2,2,2,0,1,1,1,1,1,1},
                          {0,2,0,0,2,2,1,1,1,1,1,1},
                          {0,2,2,0,0,2,1,1,1,1,1,1},
                          {0,2,2,2,0,0,1,1,1,1,1,1},
                          {0,2,0,2,0,2,1,1,1,1,1,1},
                          {0,2,0,2,2,0,1,1,1,1,1,1},
                          {0,2,2,0,2,0,1,1,1,1,1,1} };
bool LGR_codes[10][3][7] = { { {0,0,0,1,1,0,1}, {1,1,1,0,0,1,0}, {0,1,0,0,1,1,1} },
                            { {0,0,1,1,0,0,1}, {1,1,0,0,1,1,0}, {0,1,1,0,0,1,1} },
                            { {0,0,1,0,0,1,1}, {1,1,0,1,1,0,0}, {0,0,1,1,0,1,1} },
                            { {0,1,1,1,1,0,1}, {1,0,0,0,0,1,0}, {0,1,0,0,0,0,1} },
                            { {0,1,0,0,0,1,1}, {1,0,1,1,1,0,0}, {0,0,1,1,1,0,1} },
                            { {0,1,1,0,0,0,1}, {1,0,0,1,1,1,0}, {0,1,1,1,0,0,1} },
                            { {0,1,0,1,1,1,1}, {1,0,1,0,0,0,0}, {0,0,0,0,1,0,1} },
                            { {0,1,1,1,0,1,1}, {1,0,0,0,1,0,0}, {0,0,1,0,0,0,1} },
                            { {0,1,1,0,1,1,1}, {1,0,0,1,0,0,0}, {0,0,0,1,0,0,1} },
                            { {0,0,0,1,0,1,1}, {1,1,1,0,1,0,0}, {0,0,1,0,1,1,1} } };
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
        int i_sxem = shtrixcode[0];
        bool visual_strixcode[95];
        int visual_height[95];
        for ( int i = 0; i < 95; i++ ) visual_height[i] = 40;
        int v_count = 0;
 
        String s = "";
 
        // -------------------------- ????????? 2 ?????? ?????? -------------------------
        visual_strixcode[v_count] = 1; visual_height[v_count] = 45; v_count++;
        visual_strixcode[v_count] = 0; visual_height[v_count] = 45; v_count++;
        visual_strixcode[v_count] = 1; visual_height[v_count] = 45; v_count++;
        // -------------------------------------------------------------------------------------
 
        // --------------------------------- ????? ????? --------------------------------------
        for ( int i = 1; i < 7; i++ )
        {
                int cifra = shtrixcode[i];
                for ( int j = 0; j < 7; j++ )
                {
                        visual_strixcode[v_count++] = LGR_codes[cifra][sxem_table[i_sxem][i-1]][j];
                        s += String((int)visual_strixcode[v_count-1]);
                }
                s += "\r\n";
        }
        // -------------------------------------------------------------------------------------
 
        s += "\r\n";
 
        // ----------------------------- 2 ?????? ?????? ?? ???????? ---------------------------
        visual_strixcode[v_count] = 0; visual_height[v_count] = 45; v_count++;
        visual_strixcode[v_count] = 1; visual_height[v_count] = 45; v_count++;
        visual_strixcode[v_count] = 0; visual_height[v_count] = 45; v_count++;
        visual_strixcode[v_count] = 1; visual_height[v_count] = 45; v_count++;
        visual_strixcode[v_count] = 0; visual_height[v_count] = 45; v_count++;
        // -------------------------------------------------------------------------------------
 
 
        // --------------------------------- ?????? ????? --------------------------------------
        for ( int i = 7; i < 13; i++ )
        {
                int cifra = shtrixcode[i];
                for ( int j = 0; j < 7; j++ )
                {
                        visual_strixcode[v_count++] = LGR_codes[cifra][sxem_table[i_sxem][i-1]][j];
                        s += String((int)visual_strixcode[v_count-1]);
                }
                s += "\r\n";
        }
        // -------------------------------------------------------------------------------------
 
        //ShowMessage(s);
 
        // -------------------------- ????????? 2 ?????? ?????? -------------------------
        visual_strixcode[v_count] = 1; visual_height[v_count] = 45; v_count++;
        visual_strixcode[v_count] = 0; visual_height[v_count] = 45; v_count++;
        visual_strixcode[v_count] = 1; visual_height[v_count] = 45; v_count++;
        // -------------------------------------------------------------------------------
 
        // ---------------------------------- ????????? ---------------------------------
        for ( int i = 0; i < 96; i++ )
        {
                if (visual_strixcode[i]) Image1->Canvas->Pen->Color = clBlack;
                else Image1->Canvas->Pen->Color = clWhite;
                Image1->Canvas->MoveTo(i, 0);
                Image1->Canvas->LineTo(i, visual_height[i]);
        }
        // ------------------------------------------------------------------------------
}

Èñòî÷íèê
Ïîïðîáóþ ðåàëèçîâàòü íà Autoit, ïî èäåå äàæå íå íóæåí øðèôò. Íóæíî òîëüêî ïðîðèñîâàòü ãðàôèêó. Ìíå íå ïðèíöèïèàëüíî ñîõðàíÿòü â img ôàéë. Ìîæíî ïðîñòî âûâåñòè â gui.
Ïîïðîáóþ íàïèñàòü êîä. Íî âñå æå áóäó ïðèçíàòåëåí çà ïîìîùü.

morgan1991 01-02-2022 21:10 2979139

Ñäåëàë ïåðâóþ ÷àñòü. Ñêðèïò ãåíåðèðóåò ñòðîêó èç öèôð èñõîäÿ èõ ïîëó÷åííîãî øòðèõêîäà.
Îñòàëîñü ýòè öèôðû ïðåîáðàçîâàòü â ïèêñåëè è çàöèêëèòü ðàç 10, ÷òîáû ïîëó÷èëèñü ëèíèè, à íå òî÷êè. Íàäåþñü äâèãàþñü â ïðàâèëüíîì íàïðàâëåíèè.

Êîä:

#include<Array.au3>

;Local $ArrL[10][7] = [[0,0,0,1,1,0,1], [0,0,1,1,0,0,1], [0,0,1,0,0,1,1], [0,1,1,1,1,0,1], [0,1,0,0,0,1,1], [0,1,1,0,0,0,1], [0,1,0,1,1,1,1], [0,1,1,1,0,1,1], [0,1,1,0,1,1,1], [0,0,0,1,0,1,1]]
;Local $ArrR[10][7] = [[1,1,1,0,0,1,0], [1,1,0,0,1,1,0], [1,1,0,1,1,0,0], [1,0,0,0,0,1,0], [1,0,1,1,1,0,0], [1,0,0,1,1,1,0], [1,0,1,0,0,0,0], [1,0,0,0,1,0,0], [1,0,0,1,0,0,0], [1,1,1,0,1,0,0]]
;Local $ArrG[10][7] = [[0,1,0,0,1,1,1], [0,1,1,0,0,1,1], [0,0,1,1,0,1,1], [0,1,0,0,0,0,1], [0,0,1,1,1,0,1], [0,1,1,1,0,0,1], [0,0,0,0,1,0,1], [0,0,1,0,0,0,1], [0,0,0,1,0,0,1], [0,0,1,0,1,1,1]]

$ShK = 5627381956205
$ArrShK = StringSplit($ShK, "", 2)
Local $Result = ""
Local $ArrPref[10][12] = [[0,0,0,0,0,0,1,1,1,1,1,1], _
                          [0,0,2,0,2,2,1,1,1,1,1,1], _
                          [0,0,2,2,0,2,1,1,1,1,1,1], _
                          [0,0,2,2,2,0,1,1,1,1,1,1], _
                          [0,2,0,0,2,2,1,1,1,1,1,1], _
                          [0,2,2,0,0,2,1,1,1,1,1,1], _
                          [0,2,2,2,0,0,1,1,1,1,1,1], _
                          [0,2,0,2,0,2,1,1,1,1,1,1], _
                          [0,2,0,2,2,0,1,1,1,1,1,1], _
                          [0,2,2,0,2,0,1,1,1,1,1,1]]

Local $ArrTable[3][10][7] = [[[0,0,0,1,1,0,1], [0,0,1,1,0,0,1], [0,0,1,0,0,1,1], [0,1,1,1,1,0,1], [0,1,0,0,0,1,1], [0,1,1,0,0,0,1], [0,1,0,1,1,1,1], [0,1,1,1,0,1,1], [0,1,1,0,1,1,1], [0,0,0,1,0,1,1]], _
                            [[1,1,1,0,0,1,0], [1,1,0,0,1,1,0], [1,1,0,1,1,0,0], [1,0,0,0,0,1,0], [1,0,1,1,1,0,0], [1,0,0,1,1,1,0], [1,0,1,0,0,0,0], [1,0,0,0,1,0,0], [1,0,0,1,0,0,0], [1,1,1,0,1,0,0]], _
                            [[0,1,0,0,1,1,1], [0,1,1,0,0,1,1], [0,0,1,1,0,1,1], [0,1,0,0,0,0,1], [0,0,1,1,1,0,1], [0,1,1,1,0,0,1], [0,0,0,0,1,0,1], [0,0,1,0,0,0,1], [0,0,0,1,0,0,1], [0,0,1,0,1,1,1]]]

For $i = 0 To 11 Step +1
  For $j = 0 To 6 Step +1
      $Result &= $ArrTable[$ArrPref[$ArrShK[0]][$i]][$ArrShK[$i+1]][$j]
  Next
Next


ConsoleWrite(@CRLF & $Result & @CRLF)

Ðåçóëüòàò:
Êîä:

010111100110110010001011110101101110110011111010010011101010000110110011100101001110

iglezz 02-02-2022 23:19 2979205

morgan1991, Âîò êîðÿâåíüêèé ïî êîäó, íî ðàáî÷èé ïðèìåð

morgan1991 03-02-2022 00:19 2979207

Âëîæåíèé: 1
Ó ìåíÿ ïîëó÷èëîñü êàê òî òàê:
Ïîëíûé êîä âî âëîæåíèè. Îãðàíè÷åíèå ôîðóìà 30000 ñèìâîëîâ
Êîä:

$ArrResult = StringSplit($Result, "", 2)
;ConsoleWrite(@CRLF & StringLen($Result) & @CRLF)

Local $hGUI, $hGraphic, $hPen

; Ñîçäà¸ò GUI
$hGUI = GUICreate("GDI+", 400, 300)
GUISetState()

; Ðèñóåò ëèíèþ
_GDIPlus_Startup ()
$hGraphic = _GDIPlus_GraphicsCreateFromHWND ($hGUI)
$hPen = _GDIPlus_PenCreate (0xFF000000)
_GDIPlus_GraphicsDrawLine ($hGraphic, 10, 150, 10, 220, $hPen)
_GDIPlus_PenSetColor($hPen, 0xFFFFFFFF)
_GDIPlus_GraphicsDrawLine ($hGraphic, 11, 150, 11, 220, $hPen)
_GDIPlus_PenSetColor($hPen, 0xFF000000)
_GDIPlus_GraphicsDrawLine ($hGraphic, 12, 150, 12, 220, $hPen)
;_GDIPlus_PenSetColor($hPen, 0xFFFFFFFF)
;_GDIPlus_GraphicsDrawLine ($hGraphic, 13, 150, 13, 220, $hPen)



For $i = 0 To 41 Step +1
  If $ArrResult[$i] = 0 Then _GDIPlus_PenSetColor($hPen, 0xFFFFFFFF)
  If $ArrResult[$i] = 1 Then _GDIPlus_PenSetColor($hPen, 0xFF000000)
  _GDIPlus_GraphicsDrawLine ($hGraphic, 12+$i+1, 150, 12+$i+1, 210, $hPen)
Next

_GDIPlus_PenSetColor($hPen, 0xFFFFFFFF)
_GDIPlus_GraphicsDrawLine ($hGraphic, 55, 150, 55, 220, $hPen)
_GDIPlus_PenSetColor($hPen, 0xFF000000)
_GDIPlus_GraphicsDrawLine ($hGraphic, 56, 150, 56, 220, $hPen)
_GDIPlus_PenSetColor($hPen, 0xFFFFFFFF)
_GDIPlus_GraphicsDrawLine ($hGraphic, 57, 150, 57, 220, $hPen)
_GDIPlus_PenSetColor($hPen, 0xFF000000)
_GDIPlus_GraphicsDrawLine ($hGraphic, 58, 150, 58, 220, $hPen)
_GDIPlus_PenSetColor($hPen, 0xFFFFFFFF)
_GDIPlus_GraphicsDrawLine ($hGraphic, 59, 150, 59, 220, $hPen)

For $i = 42 To 83 Step +1
  If $ArrResult[$i] = 0 Then _GDIPlus_PenSetColor($hPen, 0xFFFFFFFF)
  If $ArrResult[$i] = 1 Then _GDIPlus_PenSetColor($hPen, 0xFF000000)
  _GDIPlus_GraphicsDrawLine ($hGraphic, 17+$i+1, 150, 17+$i+1, 210, $hPen)
Next


_GDIPlus_PenSetColor($hPen, 0xFF000000)
_GDIPlus_GraphicsDrawLine ($hGraphic, 102, 150, 102, 220, $hPen)
_GDIPlus_PenSetColor($hPen, 0xFFFFFFFF)
_GDIPlus_GraphicsDrawLine ($hGraphic, 103, 150, 103, 220, $hPen)
_GDIPlus_PenSetColor($hPen, 0xFF000000)
_GDIPlus_GraphicsDrawLine ($hGraphic, 104, 150, 104, 220, $hPen)
_GDIPlus_PenSetColor($hPen, 0xFFFFFFFF)
_GDIPlus_GraphicsDrawLine ($hGraphic, 105, 150, 105, 220, $hPen)



Âðåìÿ: 23:47.

Âðåìÿ: 23:47.
© OSzone.net 2001-