Problem z dekodowaniem polskiej czcionki

0

Mam problem bo tworzę aplikację (to nie jest duży problem , chodzi o inny) która odczytuje plik za pomocą komendy systemowej "certutil -encodehex " otwiera go,

mamy to

0000	50 72 7a 65 70 72 6f 77  61 64 7a c4 99 20 77 64   xxxxxxxxxxxx
0010	72 6f c5 bc 65 6e 69 65  20 64 6f 20 7a 61 77 6f   xxxxxx
0020	64 75 20 70 72 6f 67 72  61 6d 69 73 74 79 2e 20   xxxxxxxxx

modyfikuje, usuwa przod i tyl

mamy to

50 72 7a 65 70 72 6f 77  61 64 7a c4 99 20 77 64 
72 6f c5 bc 65 6e 69 65  20 64 6f 20 7a 61 77 6f 
64 75 20 70 72 6f 67 72  61 6d 69 73 74 79 2e 20 

dzieli na łańcuchy 250 znakowe, zapisuje kazyd znak w 4 bitach dolnych i górnych z tablicy znaków własnej,

char safeChars []={
                             'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 
                             'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
                             'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 
                             'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
                             '0', '1', '2', '3', '4', '5', '6', '7', '8', '9','-', '_'};

tworzy katalogi z nich zagnieżdżone wewnątrz,

np:

C:\Users\juzio\Desktop\Tescik\eogbhdhemejjhagogjgfcaghhcgbmficcahhcahdhkhhgbgkgdgbhchdglgjgncahehchkgfgdgjgpgmg
jghgphhgdhfcaegedcaecgbhfgmgngfhdcocafhgjmejjglhdhkgpmfjlmeihcaglgbhcgjgfhchjcahdhamejjgehkgjmficcagkgfgegogbgl
cahhcaehhcgfgdgkgjcmcaghgehkgjgfcahcgfhahcgfhkgfgohegphhgb\mficcagcgbhchhhjcagehchfghgpgmgjghgphhhjgdgicaebfdca
ekgbgogjhehdgbcagphcgbhkcaebepcaelgbhggbgmgbcmcagbcahegbglmflmgfcahagjgfhchhhdhkgpgmgjghgphhhjgdgicafggfhcgjgbc
aegedcagphcgbhkcafagbgogjgpgogjgphdcaeogfgbcafdgngjhcgogjcocafhcagmgbhegbgdgicadcdadbdh


C:\Users\juzio\Desktop\Tescik\eogbhdhemejjhagogjgfcaghhcgbmficcahhcahdhkhhgbgkgdgbhchdglgjgncahehchkgfgdgjgpgmg
jghgphhgdhfcaegedcaecgbhfgmgngfhdcocafhgjmejjglhdhkgpmfjlmeihcaglgbhcgjgfhchjcahdhamejjgehkgjmficcagkgfgegogbgl
cahhcaehhcgfgdgkgjcmcaghgehkgjgfcahcgfhahcgfhkgfgohegphhgb\mficcagcgbhchhhjcagehchfghgpgmgjghgphhhjgdgicaebfdca
ekgbgogjhehdgbcagphcgbhkcaebepcaelgbhggbgmgbcmcagbcahegbglmflmgfcahagjgfhchhhdhkgpgmgjghgphhhjgdgicafggfhcgjgbc
aegedcagphcgbhkcafagbgogjgpgogjgphdcaeogfgbcafdgngjhcgogjcocafhcagmgbhegbgdgicadcdadbdh\ociajddcdadbdicagchjmfi
ccahkgbhhgpgegogjglgjgfgncagngfglhdhjglgbmfiehdglgjgfghgpcahagphegfgohegbhegbcaedgmhfgccaebgnmdkjhcgjgdgbcmcagm
gfgdhkcahagfmficgogjmficcahegbgncahhhjmficmeifgdhkgogjgfcahcgpgmmejjcahcgfhkgfhchhgphhgfghgpcocafhcagcgbhchhgbg
dgica

C:\Users\juzio\Desktop\Tescik\eogbhdhemejjhagogjgfcaghhcgbmficcahhcahdhkhhgbgkgdgbhchdglgjgncahehchkgfgdgjgpgmg
jghgphhgdhfcaegedcaecgbhfgmgngfhdcocafhgjmejjglhdhkgpmfjlmeihcaglgbhcgjgfhchjcahdhamejjgehkgjmficcagkgfgegogbgl
cahhcaehhcgfgdgkgjcmcaghgehkgjgfcahcgfhahcgfhkgfgohegphhgb\mficcagcgbhchhhjcagehchfghgpgmgjghgphhhjgdgicaebfdca
ekgbgogjhehdgbcagphcgbhkcaebepcaelgbhggbgmgbcmcagbcahegbglmflmgfcahagjgfhchhhdhkgpgmgjghgphhhjgdgicafggfhcgjgbc
aegedcagphcgbhkcafagbgogjgpgogjgphdcaeogfgbcafdgngjhcgogjcocafhcagmgbhegbgdgicadcdadbdh\ociajddcdadbdicagchjmfi
ccahkgbhhgpgegogjglgjgfgncagngfglhdhjglgbmfiehdglgjgfghgpcahagphegfgohegbhegbcaedgmhfgccaebgnmdkjhcgjgdgbcmcagm
gfgdhkcahagfmficgogjmficcahegbgncahhhjmficmeifgdhkgogjgfcahcgpgmmejjcahcgfhkgfhchhgphhgfghgpcocafhcagcgbhchhgbg
dgica\ebgnmdkjhcgjglgjcahkgbgogphegphhgbmficcahhhjhdhemejjhacahhcaemgjgehkgfcaengjhdhehchkmdldhhcaedepeoedebede
begcocafhcagmhfhehjgncadcdadbdjcahcgpglhfcaebhcgdgfcagkgbglgpcahhgpgmgohjcahkgbhhgpgegogjglcahhhcmdldgdgjmficca
gegpcaehhcgfgdgkgjcmcaghgehkgjgfca

C:\Users\juzio\Desktop\Tescik\eogbhdhemejjhagogjgfcaghhcgbmficcahhcahdhkhhgbgkgdgbhchdglgjgncahehchkgfgdgjgpgmg
jghgphhgdhfcaegedcaecgbhfgmgngfhdcocafhgjmejjglhdhkgpmfjlmeihcaglgbhcgjgfhchjcahdhamejjgehkgjmficcagkgfgegogbgl
cahhcaehhcgfgdgkgjcmcaghgehkgjgfcahcgfhahcgfhkgfgohegphhgb\mficcagcgbhchhhjcagehchfghgpgmgjghgphhhjgdgicaebfdca
ekgbgogjhehdgbcagphcgbhkcaebepcaelgbhggbgmgbcmcagbcahegbglmflmgfcahagjgfhchhhdhkgpgmgjghgphhhjgdgicafggfhcgjgbc
aegedcagphcgbhkcafagbgogjgpgogjgphdcaeogfgbcafdgngjhcgogjcocafhcagmgbhegbgdgicadcdadbdh\ociajddcdadbdicagchjmfi
ccahkgbhhgpgegogjglgjgfgncagngfglhdhjglgbmfiehdglgjgfghgpcahagphegfgohegbhegbcaedgmhfgccaebgnmdkjhcgjgdgbcmcagm
gfgdhkcahagfmficgogjmficcahegbgncahhhjmficmeifgdhkgogjgfcahcgpgmmejjcahcgfhkgfhchhgphhgfghgpcocafhcagcgbhchhgbg
dgica\ebgnmdkjhcgjglgjcahkgbgogphegphhgbmficcahhhjhdhemejjhacahhcaemgjgehkgfcaengjhdhehchkmdldhhcaedepeoedebede
begcocafhcagmhfhehjgncadcdadbdjcahcgpglhfcaebhcgdgfcagkgbglgpcahhgpgmgohjcahkgbhhgpgegogjglcahhhcmdldgdgjmficca
gegpcaehhcgfgdgkgjcmcaghgehkgjgfca\hagpcahfgegbgohjgdgicahegfhdhegbgdgicagngfgehjgdhkgohjgdgicahagpgehagjhdgbmf
iccahamdldmfichegphcgbhcgpgdhkgohjcaglgpgohehcgbglhecahkcafagbgogjgpgogjgphdcocaepgecagmgjhagdgbcadcdadcdbcahcg
pglhfcaebhcgdgfcagkgfhdhecagehjhcgfglhegphcgfgncaghgfgo


potem za pomocą komendy systemowej dir przekierowanej do pliku tworzy wypis ich , potem ten plik modyfikuje, (usuwa sciezki calkowite i "\")

i zapisuje wynik do pliku np.

fahchkgfhahcgphhgbgehkmejjcahhgehcgpmflmgfgogjgfcagegpcahkgbhhgpgehfcahahcgpghhcgbgngjhdhehjcocaephdgpgcgbcagog
bgcmejjgehkgjgfcahfgngjgfgkmejjhegogpmfjlmeihcahehhgphchkgfgogjgbcagbhagmgjglgbgdgkgjcagmgpglgbgmgohjgdgicmcagj
gohegfhcgogfhegphhhjgdgicihd
fahchkgfhahcgphhgbgehkmejjcahhgehcgpmflmgfgogjgfcagegpcahkgbhhgpgehfcahahcgpghhcgbgngjhdhehjcocaephdgpgcgbcagog
bgcmejjgehkgjgfcahfgngjgfgkmejjhegogpmfjlmeihcahehhgphchkgfgogjgbcagbhagmgjglgbgdgkgjcagmgpglgbgmgohjgdgicmcagj
gohegfhcgogfhegphhhjgdgicihdhehcgpgocjcmcamficmeifgdhkgfgogjgbcagkmejjhkhjglmdldhhcahahcgpghhcgbgngphhgbgogjgbc
igdcmgdclclcmhagihacmgkgbhggbhdgdhcgjhahecagjhehacjcmcahehhgphchkgfgogjgbcagcgbhkcagegbgohjgdgicagphcgbhkcagjgo
hegfhcgggfgkhdhfcahfmflmhjheglgphhgogjglgbcocafcgphkhfgn
fahchkgfhahcgphhgbgehkmejjcahhgehcgpmflmgfgogjgfcagegpcahkgbhhgpgehfcahahcgpghhcgbgngjhdhehjcocaephdgpgcgbcagog
bgcmejjgehkgjgfcahfgngjgfgkmejjhegogpmfjlmeihcahehhgphchkgfgogjgbcagbhagmgjglgbgdgkgjcagmgpglgbgmgohjgdgicmcagj
g

potem

go dekoduje łaczy bity dolne i górne i przywraca jak na początku był.

Ale nie przywraca, bo polska czcionka się psuje.

I jak mamy to

Następnie grał w szwajcarskim trzecioligowcu FC Baulmes. Większość kariery spędził jednak w Grecji, gdzie
 reprezentował barwy drugoligowych AS Janitsa oraz AO Kavala, a także pierwszoligowych Veria FC oraz Panionios
Nea Smirni. W latach 2017–2018 był zawodnikiem meksykańskiego potentata Club América, lecz pełnił tam
wyłącznie rolę rezerwowego. W barwach Amériki zanotował występ w Lidze Mistrzów CONCACAF. W lutym 2019 roku
Arce jako wolny zawodnik wrócił do Grecji, gdzie po udanych testach medycznych podpisał półtoraroczny kontrakt
 z Panionios. Od lipca 2021 roku Arce jest dyrektorem gen

to wychodzi to

Następnie grał w szwajcarskim trzecioligowcu FC Baulmes. Większość kariery spędził jednak w Grecji,
gdzie reprezentować7LI—ć–Rw&X"r7§v¦6'6¶–ŇG'¦V6–öĆ–v÷v7Rd2&VĆÖW2âvśI–·7¦üYĽHr¶&–W'’7I–
G¦śX"¦VFć˛rw&V6¦’ÂvG¦–R&W&W¦VçF÷vX"&'w’G'VvöĆ–v÷w–6‚2¦ć—G6÷&˘ň¶fĆÂFĽ[ĆR–W'w7¦öĆ–
v÷w–6‚fW&–d2÷&˘ć–öć–÷2ćV6Ö—&ć’ârĆF6‚#pNastÄ™pnie graĹ‚ w szwajcarskim trzecioligowcu FC
Baulmes. Większość kariery spędził jednak w Grecji, gdzie reprezentował barwy drugoligowych AS Janitsa
oraz AO Kavala, a także pierwszoligowych Veria FC oraz Panionios Nea Smirni. W latach 2017–2018 był
zawodnikiem meksykańskiego potentata Club América, lecz pełnił tam wyłącznie rolę rezerwowego. W
barwach ć7LI—ć–Rw&X"r7§v¦6'6¶–ŇG'¦V6–öĆ–v÷v7Rd2&VĆÖW2âvśI–·7¦üYĽHr¶&–W'’7I–
G¦śX"¦VFć˛rw&V6¦’ÂvG¦–R&W&W¦VçF÷vX"&'w’G'VvöĆ–v÷w–6‚2¦ć—G6÷&˘ň¶fĆÂFĽ[ĆR–W'w7¦öĆ–
v÷w–6‚fW&–d2÷&˘ć–öć–÷2ćV6Ö—&ć’ârĆF6‚#~(	3#‚'śX"¦vöFć–¶–VŇÖV·7–¶XG6¶–
Vvň÷FVçFF6ÇV"Ü:—&–6ÂĆV7˘\X&ćśX"FŇwśX,HV7¦ć–R&öĚI’&W¦W'v÷vVvňâr&'v6‚Ü:—&–¶’¦ć÷F÷vX"w—
7LI—rĆ–G¦RÖ—7G'¬;7r4ôä44bârÇWG–Ň#’&ö·R&6R¦¶ňvöĆç’¦vöFć–˛w,;66śX"Fňw&V6¦’ÂvG¦–R
Następnie grał w szwajcarskim trzecioligowcu FC Baulmes. Większość kariery spędził jednak w Grecji,
gdzie reprezentował barwy drugoligowych AS Janitsa oraz AO Kavala, a także pierwszoligowych Veria FC oraz
Panionios Nea Smirni. W latach 2017–2018 był zawodnikiem meksykańskiego potentata Club América, lecz
pełnił tam wyłącznie rolę rezerwowego. W barwach Amériki zanotował występ w Lidze Mistrzów CONCACAF.
W lutym 2019 roku Arce jako wolny zawodnik wrócił do Grecji, gdzie po udanych testach medycznych podpisał
półtoraroczny kontrakt z Panionios. Od lipca 2021 roku Arce jest dyrektorem gen

Pomocy, jestem pod ścianą :(

to jest kod

#include <stdio.h>
#include <string.h>

char safeChars[] = {
    'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
    'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
    'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
    'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
    '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '_'
};

int main()
{
    FILE* file = fopen("brandNew.txt", "r");
    FILE* file2 = fopen("zrodlowy.txt", "w");
    char z, z2;
    char g;
    int* tmp_out = (int*)&g;

    while (!feof(file)) {
        z = fgetc(file);
        z2 = fgetc(file);
        *tmp_out = '\0';

        for (int i = 0; i < 65; i++) {
            if (z == safeChars[i]) {
                *tmp_out = (i & 0x0F) << 4;
                break;
            }
        }

        for (int i = 0; i < 65; i++) {
            if (z2 == safeChars[i]) {
                *tmp_out |= (i & 0x0F);
                break;
            }
        }

        printf("%c", *tmp_out);
        fprintf(file2, "%c", *tmp_out);
    }
    fclose(file2);
    fclose(file);
    return 0;
}
1

Wygląda że brakuje ci BOM w brandNew
https://pl.wikipedia.org/wiki/BOM_(informatyka)

0
hzmzp napisał(a):

Wygląda że brakuje ci BOM w brandNew
https://pl.wikipedia.org/wiki/BOM_(informatyka)

Znczy jak mam 0000 4e 61 73 74 c4 99 70 6e 69 65 20 67 72 61 c5 82 Nast..pnie gra..

to sprawdzić jak c4 99 - będzie zdekodowane do 4 znaków i jeśli c4 99 , zdekodowane zostanie do mejjhago to wpisac "ę" ?

0

nie, używasz utf więc na początek zdekodowanego pliku po prostu dodaj EF BB BF

0
hzmzp napisał(a):

nie, używasz utf więc na początek zdekodowanego pliku po prostu dodaj EF BB BF

Literkami czy liczbami ?

Otak ? fprintf(file2, "EF BB BF");

0

A przeczytałeś to co ci podesłałem?

0

Mieliście rację chyba "0000 ef bb bf c4 99 ....." o tak mi windows zapisał "ę"

Czyli tak
fprintf(plik2,"%c%c%c",239,187,191); bom się zapisuje

Mamy to proszę Państwa xD 🤣🤣🤣🤣🤣🤣🤣🤣

screenshot-20240618101039.png

0

Coraz bliżej

Nastęie grał w szwajcarskim trzecioligowcu FC Baulmes. Większość kariery spędził jednak w Grecji, gdzie
reprezentowa�7LI��Rw&X"r7�v�6'6���G'�V6��Ɩv�v7Rd2&V��W2�v�I��7��Y�Hr�&�W'�7I�G��X"�VF��rw&V6���vG��R&W&W�V�F�vX"&
'w�G'Vv�Ɩv�w�6�2��G6�&���f��F�[�R�W'w7��Ɩv�w�6�fW&�d2�&�����2�V6֗&��r�F6�#pNastęie grał w
szwajcarskim trzecioligowcu FC Baulmes. Większość kariery spędził jednak w Grecji, gdzie reprezentowah� 70Nastęie grał w szwajcarskim
trzecioligowcu FC Baulmes. Większość kariery spędził jednak w Grecji, gdzie reprezentował barwy drugoligowych AS Janitsa oraz AO Kavala, a
także pierwszoligowych Veria FC oraz Panionios Nea Smirni. W latach 2017–2018 był zawodnikiem meksykańskiego potentata Club América, lecz
pełnił tam wyłącznie rolę rezerwowego. W barwach
�7LI��Rw&X"r7�v�6'6���G'�V6��Ɩv�v7Rd2&V��W2�v�I��7��Y�Hr�&�W'�7I�G��X"�VF��rw&V6���vG��R&W&W�V�F�vX"&'w�G'Vv�Ɩv
�w�6�2��G6�&���f��F�[�R�W'w7��Ɩv�w�6�fW&�d2�&�����2�V6֗&��r�F6�#~(	3#�'�X"�v�F斶
�V��V�7��XG6��Vv��FV�FF6�V"�:�&�6��V7�\X&�X"F�w�X,HV7��R&��I�&W�W'v�vVv��r&'v6��:�&������F�vX"w�7LI�rƖG�R֗7G
'�;7r4��44b�r�WG��#�&��R&6R���v����v�F斲w,;66�X"F�w&V6���vG��R Nastęie grał w szwajcarskim trzecioligowcu FC Baulmes.
Większość kariery spędził jednak w Grecji, gdzie reprezentował barwy drugoligowych AS Janitsa oraz AO Kavala, a także pierwszoligowych
Veria FC oraz Panionios Nea Smirni. W latach 2017–2018 był zawodnikiem meksykańskiego potentata Club América, lecz pełnił tam wyłącznie
rolę rezerwowego. W barwach Amériki zanotował występ w Lidze Mistrzów CONCACAF. W lutym 2019 roku Arce jako wolny zawodnik wrócił do
Grecji, gdzie po udanych testach medycznych podpisał półtoraroczny kontrakt z Panionios. Od lipca 2021 roku Arce jest dyrektorem gen


2

Ewidentnie masz braki w wiedzy na temat tego co robisz. Nie wiesz jak działa utf choć z niego korzystasz (chyba nieświadomie). Dzielisz na bezsensowne kawałki (250?). Nie wiem jak chcesz zapisać znak w 4 bitach, mówisz o jakichś dolnych i górnych tablicach. Jakiś certyfikaty, pliki, teksty katalogi, komendy z shella? Po co? Wygląda to jak chory pomysł szyfrowania z kompresją.

Opisz co chcesz zrobić. Bo jak sam napisałeś "Mam problem bo tworzę aplikację". Nie wiadomo co to ma robić i czy ma to sens.

0
hzmzp napisał(a):

Ewidentnie masz braki w wiedzy na temat tego co robisz. Nie wiesz jak działa utf choć z niego korzystasz (chyba nieświadomie). Dzielisz na bezsensowne kawałki (250?). Nie wiem jak chcesz zapisać znak w 4 bitach, mówisz o jakichś dolnych i górnych tablicach. Jakiś certyfikaty, pliki, teksty katalogi, komendy z shella? Po co? Wygląda to jak chory pomysł szyfrowania z kompresją.

Opisz co chcesz zrobić. Bo jak sam napisałeś "Mam problem bo tworzę aplikację". Nie wiadomo co to ma robić i czy ma to sens.

Pliki binarne zapisywane jako tekst. Dzielę na pół bajty i przejdzie to przez każdy system jak nóż przez masło. Bo co może literka? 4 bity to akurat tyle żeby pomieścić każdy znak z mojego safeChars.

1
johnny_Be_good napisał(a):

Pliki binarne zapisywane jako tekst. Dzielę na pół bajty i przejdzie to przez każdy system jak nóż przez masło. Bo co może literka? 4 bity to akurat tyle żeby pomieścić każdy znak z mojego safeChars.

No i potwierdziłeś to co napisałem wcześniej, nie masz pojęcia co robisz. Jak sam widzisz, podzielenie tego na 250 nie jest dobrym pomysłem. Jeszcze lepiej, twoja kompresja 2 bajtów do 4 bitów też nie działa najlepiej. Pliki binarne traktujesz jako tekst, kiedy ci się podoba. A nawet nie wiesz ile elementów ma safeChars. Pisze ci żebyś Powiedział co chcesz osiągnąć a ty walisz tekstem o nożu i maśle...

1

W sumie z tego pytania nic nie rozumiem.
Jedynie co rozumiem, to kod, który robi coś bardzo dziwnego (łączy dwa pliki w niezrozumiały sposób).
Czyta dwa znaki i łączy indeksy tych znaków 4 starsze bity z indeksu pierwszego znaku z 4 młodszymi bitami indeksu drugiego znaku.
Po co jak i dlaczego nie rozumiem. I jak to się ma do kodowania znaków?

Najlepiej jakby autor przemyślał co właściwie chce zrobić i jasno opisze co ten kod ma robić z punktu widzenie użytkownika. Ja nie mam pojęcia o co właściwie chodzi.

Proponuje też podać wyraźna zawartość pliku wejściowego.

0

Z tym próbowałem


#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <string.h>

char current_path[MAX_PATH];
char current_path2[MAX_PATH];
char safeChars []={
                  'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 
                  'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
                  'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 
                  'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
                  '0', '1', '2', '3', '4', '5', '6', '7', '8', '9','-', '_'};
                                                      
void copyAndAppend() {
    char inputPath[256];
    char outputPath[256];
    char appendText[256];

    // Tworzenie ścieżki do plików
    snprintf(inputPath, sizeof(inputPath), "%s\\procencik.txt", current_path2);
    snprintf(outputPath, sizeof(outputPath), "%s\\procencik2.txt", current_path2);
    snprintf(appendText, sizeof(appendText), " > %s\\procencik3.txt", current_path2);

    // Otwieranie pliku do odczytu
    FILE *inputFile = fopen(inputPath, "r");
    if (inputFile == NULL) {
        perror("Nie można otworzyć pliku wejściowego");
        return;
    }

    // Otwieranie pliku do zapisu
    FILE *outputFile = fopen(outputPath, "w");
    if (outputFile == NULL) {
        perror("Nie można otworzyć pliku wyjściowego");
        fclose(inputFile);
        return;
    }

    // Kopiowanie zawartości pliku
    char ch;
    while ((ch = fgetc(inputFile)) != EOF) {
        fputc(ch, outputFile);
    }

    // Dodawanie tekstu na końcu
    fprintf(outputFile, "%s", appendText);

    // Zamknięcie plików
    fclose(inputFile);
    fclose(outputFile);
}


char tab2[256];
void cutoutfromfile(){

 FILE *inputFile, *outputFile;
    
    char line[100], ascii[50];
    int offset;

    // Open the input file in read mode
    inputFile = fopen("tmp.txt", "r");
    if (inputFile == NULL) {
        perror("Error opening input file");
       
    }

    // Open the output file in write mode
    outputFile = fopen("output.txt", "w");
    if (outputFile == NULL) {
        perror("Error opening output file");
        fclose(inputFile);
      
    }

    // Read each line from the input file
    while (fgets(line, sizeof(line), inputFile)) {
        // Extract ASCII characters starting from column 10 to 49
        strncpy(ascii, line + 5, 49);
        ascii[49] = '\0'; // Null-terminate the string

        // Write the extracted ASCII characters to the output file
        fprintf(outputFile, "%s\n", ascii);
    }

    // Close the files
    fclose(inputFile);
    fclose(outputFile);

    printf("Extraction complete. Check 'output.txt' for results.\n");}



	                 
int readHex() {
    FILE *file;
    FILE *file2;
    int isnew=0;
    char hex_string[4096];
    char *filename = "output.txt";

    // Otwieranie pliku do odczytu
    file = fopen(filename, "r");
    file2 = fopen("output.bat", "w");
    if (file == NULL) {
        printf("Nie można otworzyć pliku %s\n", filename);
        return 1;
    }
 // fprintf(file2, "echo off\n");
    // Wczytywanie zawartości pliku do stringa
    size_t len = fread(hex_string, sizeof(char), sizeof(hex_string) - 1, file);
    hex_string[len] = '\0';
    fclose(file);

    // Parsowanie stringa i konwersja hex na decimal
    char *ptr = hex_string;
    int index = 0;
    int can =0;
    char tab[256];  // Zwiększona wielkość bufora
     
    while (*ptr) {
        if (*ptr == ' ' || *ptr == '\n') {
            ptr++;
            continue;
        }

        char hex_pair[3] = {ptr[0], ptr[1], '\0'};
        int decimal_value = (int)strtol(hex_pair, NULL, 16);

        int higher_nibble = (decimal_value >> 4) & 0xF; // Przesunięcie bitowe o 4 miejsca w prawo i maskowanie
        int lower_nibble = decimal_value & 0xF;         // Maskowanie, aby uzyskać 4 mniej znaczące bity

        // Dodanie odpowiednich znaków do tablicy
        tab[index] = safeChars[higher_nibble];
        tab[index+1] = safeChars[lower_nibble];
        index += 2;

        if (index >= 250) {
            tab[index] = '\0';  // Zakończenie stringa
            if(can==0){strcpy(tab2,tab);can=1;}
            fprintf(file2, "md %s\ncd %s\n", tab, tab);
            index = 0;  // Zresetowanie indeksu
        }

        ptr += 2;

        // Sprawdzanie czy napotkano trzykrotne spacje, które kończą przetwarzanie
        if (*ptr == ' ' && *(ptr+1) == ' ' && *(ptr+2) == ' ') {
            tab[index] = '\0';  // Zakończenie stringa
             if(can==0){strcpy(tab2,tab);can=1;}
            fprintf(file2, "md %s\ncd %s\n\n", tab, tab);
            break;  // Przerwanie pętli
        }
    }
 
    
     fprintf(file2, "cd %s\\%s\\\n\n\n", current_path2,tab2);
     
     // fprintf(file2, "echo FOR /D /R %c.%c \%G IN (*) DO @echo \%~nxG\n----------\n",34,34,34,current_path2,34);
     
     fclose(file2);
   //  FILE *plik3=fopen("current_path2","rb");
  char inputPath[256];
    char outputPath[256];

    // Tworzenie ścieżki do plików
    snprintf(inputPath, sizeof(inputPath), "%s\\procencik.txt", current_path2);
    snprintf(outputPath, sizeof(outputPath), "%s\\output.bat", current_path2);

    // Otwieranie pliku do odczytu
    FILE *inputFile = fopen(inputPath, "r");
    if (inputFile == NULL) {
        printf("Nie można otworzyć pliku wejściowego\n");
        return 1; // Zwraca 1 w przypadku błędu
    }

    // Otwieranie pliku do zapisu (tryb "a" do dodawania na końcu)
    FILE *outputFile = fopen(outputPath, "a");
    if (outputFile == NULL) {
        printf("Nie można otworzyć pliku wyjściowego\n");
        fclose(inputFile);
        return 1; // Zwraca 1 w przypadku błędu
    }

    // Kopiowanie zawartości pliku
    char ch;
    while ((ch = fgetc(inputFile)) != EOF) {
        fputc(ch, outputFile);
    }

    // Dodawanie tekstu na końcu pliku
    fprintf(outputFile, "%s\\outputX.txt", current_path2);

    // Zamykanie plików
    fclose(inputFile);
    fclose(outputFile);

    
   //  fprintf( outputFile,"%c%s%c",34,current_path2,34);
     
//fprintf(file2,"FOR /D /R \".\" %%%c %c%c (*) DO \@echo\n",71,73,78); 
//fprintf(file2,"echo  /D /R \".\" \%G IN (*) DO \@echo \%~nxG>%c%s\\outputX.txt%c\n",34,current_path2,34); 

 
//fprintf(file2,"echo %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",70,79,82,32,47,68,32,47,82,32,34,46,34,32,37,71,32,73,78,32,40,42,41,32,68,79,32,64,101,99,104,111,32,37,126,110,120,71);
   
 // fprintf(file2, "FOR /D /R %c.%c \%G IN (*) DO @echo \%~nxG>>%c%s\\output.bat%s%c",34,34,34,current_path2,34);

       fclose(inputFile);
     fclose(outputFile);
    
    
    
    
    
   // >%c%s\\outputX.txt%c34,current_path2,34
    
    return 0;
}




void run_main_bat(){
	

	 char command[656];
	 FILE *tmp_file;
	 tmp_file = fopen("output.bat","a");
	 

	 printf("\n-------\necho %s>%c%s\\outputX.txt%c\n-------\n",tab2,34, current_path,34);
 
  snprintf(command, sizeof(command), "echo %s>%c%s\\outputX.txt%c\ncd %s\n",tab2,34, current_path,34, tab2);
  
     fprintf(tmp_file,command);
     
  //snprintf(command, sizeof(command), "echo FOR /D /R %%c.%%c %%G IN (*) DO @echo %%~nxG>>%%c%s\\outputX.txt%%c\n", 34, 34, 34, current_path, 34);

   
   fprintf(tmp_file,command);
 
  fclose(tmp_file);
	
}


void remove_path() {
    FILE *file = fopen("outputX.txt", "r");
   
    if (file == NULL) {
        perror("Nie można otworzyć pliku do odczytu");
        return;
    }

    // Odczytanie zawartości pliku do pamięci
    fseek(file, 0, SEEK_END);
    long file_size = ftell(file);
    fseek(file, 0, SEEK_SET);

    char *file_content = new char[file_size + 1];
    if (file_content == NULL) {
        perror("Nie można alokować pamięci");
        fclose(file);
        return;
    }

    fread(file_content, 1, file_size, file);
    file_content[file_size] = '\0';
    fclose(file);

    // Usunięcie podanego łańcucha znaków
    char *pos;
    while ((pos = strstr(file_content, current_path)) != NULL) {
        memmove(pos, pos + strlen(current_path), strlen(pos + strlen(current_path)) + 1);
    }

    // Usunięcie wszystkich znaków '\'
    char *src = file_content, *dst = file_content;
    while (*src) {
        if (*src != '\\') {
            *dst++ = *src;
        }
        src++;
    }
    *dst = '\0';

    // Zapisanie zmodyfikowanej zawartości z powrotem do pliku
    file = fopen("brandNew.txt", "w");
    if (file == NULL) {
        perror("Nie można otworzyć pliku do zapisu");
        delete[] file_content;
        return;
    }

    fwrite(file_content, 1, strlen(file_content), file);
    fclose(file);

    delete[] file_content;
}


int main(int argc, char *argv[]) {
   
   
   printf("%s\n",argv[1]);
   if(strcmp(argv[1],"")==0){return 0;}
    char filename[255];// = "Mazur.txt";
    strcpy(filename, argv[1]);
    char command[256];
    
    

    // Pobierz bieżącą ścieżkę
    if (GetCurrentDirectory(MAX_PATH, current_path) != 0) {
        printf("Bieżąca ścieżka: %s\n", current_path);
    } else {
        perror("Błąd podczas pobierania bieżącej ścieżki");
        return 1;
    }
    
       if (GetCurrentDirectory(MAX_PATH, current_path2) != 0) {
        printf("Bieżąca ścieżka: %s\n", current_path2);
    } else {
        perror("Błąd podczas pobierania bieżącej ścieżki");
        return 1;
    } 
    snprintf(command, sizeof(command), "echo >tmp.txt");

    int result = system(command);
    if (result != 0) {
        printf("Failed to execute command\n");
        return 1;
    }
       printf("tmp.txt created\n");
    
  snprintf(command, sizeof(command), "del tmp.txt");

    result = system(command);
    if (result != 0) {
        printf("Failed to execute command\n");
        return 1;
    }
       printf("tmp.txt removed\n");
       
        snprintf(command, sizeof(command), "setlocal enabledelayedexpansion");

    result = system(command);
    if (result != 0) {
        printf("Failed to execute command\n");
        return 1;
    }
       printf("setlocal enabledelayedexpansion set\n");
       
printf("\n running %s \n\n",argv[1]);


        snprintf(command, sizeof(command), "certutil -encodehex %s tmp.txt",argv[1]);

    result = system(command);
    if (result != 0) {
        printf("certutil -encodehex Mazur.txt tmp.txt run");
        return 1;
    }
       printf("certutil -encodehex Mazur.txt tmp.txt run\n");


 
    
 cutoutfromfile();
 readHex(); 
  
	  snprintf(command, sizeof(command), "output.bat");
//	  run_main_bat(); 
 system(command);
   
  remove_path();
    
    
    
    return 0;
}
1

jednego bajta do 4 bitów, czyli dekompresja — johnny_Be_good 1 minuta temu

Ale ty tam masz utf8 a na nim znak zapisuje się w 2 bajtach, nie dociera to do ciebie? Nie możesz sobie go przetwarzać jak ci się podoba bo tracisz informacje.
Poza tym od kiedy to dekompresją nazywamy zmniejszanie objętości?

0
hzmzp napisał(a):

jednego bajta do 4 bitów, czyli dekompresja — johnny_Be_good 1 minuta temu

Ale ty tam masz utf8 a na nim znak zapisuje się w 2 bajtach, nie dociera to do ciebie? Nie możesz sobie go przetwarzać jak ci się podoba bo tracisz informacje.
Poza tym od kiedy to dekompresją nazywamy zmniejszanie objętości?

Ale ja nie zmniejszam objętości, zwiększam ją, bo każdy znak z safeChars to 1 bajt , a powstają dwa takie z odczytanego bajtu.

0

Nie rozumiejąc celu pierwotnego kodu tu jest poprawka dla kodu zamieszczonego na początku:

#include <stdio.h>
#include <string.h>

const char safeChars[] = {
    'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
    'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
    'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
    'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
    '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '_'
};

int findSafeCharIndex(int ch, int defaultValue)
{
    for (size_t i = 0; i < sizeof(safeChars); i++) {
        if (ch == safeChars[i]) {
            return i;
        }
    }
    return defaultValue;
}

int main()
{
    FILE* inFile = fopen("brandNew.txt", "r");
    if (!inFile) {
        perror("brandNew.txt");
        return 1;
    }
    FILE* outFile = fopen("zrodlowy.txt", "w");
    if (!outFile) {
        perror("zrodlowy.txt");
        return 1;
    }

    int z1, z2;
    int resultChar;

    while ((z1 = fgetc(inFile)) != EOF && (z2 = fgetc(inFile)) != EOF) {
        resultChar = (findSafeCharIndex(z1, 0) & 0x0F) << 4;
        resultChar |= findSafeCharIndex(z2, 0) & 0x0F;
        printf("%c", resultChar);
        fprintf(outFile, "%c", resultChar);
    }
    fclose(outFile);
    fclose(inFile);
    return 0;
}

https://godbolt.org/z/5YExTKd6e

0

Działa xD

Idzie jak marzenie żuczki ! xD


FOR / %G IN (*) DO @echo %~nxG  1>>C:\Users\juzio\Desktop\FileWriter\outputX.txt

 - tutaj może tak być, ale w bat potrzebuje  %%G i  %%~nxG

0

Jest problem proszę Państwa, bo jak tworzę te katalogi , to już pierwszy nie pozwala mi na uruchamianie aplikacji (za pocą latających plików skopiowany)

screenshot-20240618204453.png

po uruchominiu w konsoli

screenshot-20240618204630.png

1

Przypuszczam, że rozbijasz się o standardowy limit długości ścieżki w Windows (260 znaków). Można włączyć Long Paths w rejestrze (Windows 10 i nowszy), ale wiele programów i tak sobie z nimi nie poradzi.
Maximum Path Length Limitation

0
-daniel- napisał(a):

Przypuszczam, że rozbijasz się o standardowy limit długości ścieżki w Windows (260 znaków). Można włączyć Long Paths w rejestrze (Windows 10 i nowszy), ale wiele programów i tak sobie z nimi nie poradzi.
Maximum Path Length Limitation

nie, katalogi mają 250 znaków długości maksymalnie

0

całej ścieżki (nie pojedynczego komponentu). W tym kończący znak o kodzie 0.

0
-daniel- napisał(a):

całej ścieżki (nie pojedynczego komponentu). W tym jedno pole na kończący znak o kodzie 0.

Ale się otwierają więc działają, mają pewne ograniczenia tylko

0

No jest myk ze ścieżką zaczynającą się od \\?\, ale lepiej nie pchać się ponad ten limit. Jak napisałem wcześniej, obojętnie co zrobisz, wiele programów sobie z nimi nie poradzi.

0
-daniel- napisał(a):

No jest myk ze ścieżką zaczynającą się od \\?\, ale lepiej nie pchać się ponad ten limit. Jak napisałem wcześniej, obojętnie co zrobisz, wiele programów sobie z nimi nie poradzi.

CMD sobie radzi bezproblemow. W tym projekcie ono jest kluczowe.

0
MarekR22 napisał(a):

Windows ma limit na długość ścieżki https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry
Jako, że nie zastosowałeś się do https://4programmers.net/Forum/Spolecznosc/355922-dlaczego_nie_nalezy_zamieszczac_kodu_w_postaci_obrazkow?p=1801025#id1801025
To nie da się tego łatwo zweryfikować.

dir daje to

C:\Users\juzio\Desktop\FileWriter\eogbhdhemejjhagogjgfcaghhcgbmficcahhcahdhkhhgbgkgdgbhchdglgjgncahehchkgfgdgjgpgmgjghgphhgdhfcaegedcaecgbhfgmgngfhdcocafhgjmejjglhdhkgpmfjlmeihcaglgbhcgjgfhchjcahdhamejjgehkgjmficcagkgfgegogbglcahhcaehhcgfgdgkgjcmcaghgehkgjgfanakcahcgfhahcgfhkgfgohegp\hhgbmficcagcgbhchhhjcagehchfghgpgmgjghgphhhjgdgicaebfdcaekgbgogjhehdgbcagphcgbhkcaebepcaelgbhggbgmgbcmcagbcahegbglmflmgfcahagjgfhchhhdhkgpgmgjghgphhhjgdgicafggfhcgjgbcaegedcagphcgbhkcafagbgogjgpgogjgphdanakeogfgbcafdgngjhcgogjcocafhcagmgbhegbgdgicadc
C:\Users\juzio\Desktop\FileWriter\eogbhdhemejjhagogjgfcaghhcgbmficcahhcahdhkhhgbgkgdgbhchdglgjgncahehchkgfgdgjgpgmgjghgphhgdhfcaegedcaecgbhfgmgngfhdcocafhgjmejjglhdhkgpmfjlmeihcaglgbhcgjgfhchjcahdhamejjgehkgjmficcagkgfgegogbglcahhcaehhcgfgdgkgjcmcaghgehkgjgfanakcahcgfhahcgfhkgfgohegp\hhgbmficcagcgbhchhhjcagehchfghgpgmgjghgphhhjgdgicaebfdcaekgbgogjhehdgbcagphcgbhkcaebepcaelgbhggbgmgbcmcagbcahegbglmflmgfcahagjgfhchhhdhkgpgmgjghgphhhjgdgicafggfhcgjgbcaegedcagphcgbhkcafagbgogjgpgogjgphdanakeogfgbcafdgngjhcgogjcocafhcagmgbhegbgdgicadc\dadbdhociajddcdadbdicagchjmficcahkgbhhgpgegogjglgjgfgncagngfglhdhjglgbmfiehdglgjgfghgpcahagphegfgohegbhegbcaedgmhfgccaebgnmdkjhcgjgdgbcmcagmgfgdhkcahagfmficgogjmficcahegbgnanakhhhjmficmeifgdhkgogjgfcahcgpgmmejjcahcgfhkgfhchhgphhgfghgpcocafhcagcgbhchh
C:\Users\juzio\Desktop\FileWriter\eogbhdhemejjhagogjgfcaghhcgbmficcahhcahdhkhhgbgkgdgbhchdglgjgncahehchkgfgdgjgpgmgjghgphhgdhfcaegedcaecgbhfgmgngfhdcocafhgjmejjglhdhkgpmfjlmeihcaglgbhcgjgfhchjcahdhamejjgehkgjmficcagkgfgegogbglcahhcaehhcgfgdgkgjcmcaghgehkgjgfanakcahcgfhahcgfhkgfgohegp\hhgbmficcagcgbhchhhjcagehchfghgpgmgjghgphhhjgdgicaebfdcaekgbgogjhehdgbcagphcgbhkcaebepcaelgbhggbgmgbcmcagbcahegbglmflmgfcahagjgfhchhhdhkgpgmgjghgphhhjgdgicafggfhcgjgbcaegedcagphcgbhkcafagbgogjgpgogjgphdanakeogfgbcafdgngjhcgogjcocafhcagmgbhegbgdgicadc\dadbdhociajddcdadbdicagchjmficcahkgbhhgpgegogjglgjgfgncagngfglhdhjglgbmfiehdglgjgfghgpcahagphegfgohegbhegbcaedgmhfgccaebgnmdkjhcgjgdgbcmcagmgfgdhkcahagfmficgogjmficcahegbgnanakhhhjmficmeifgdhkgogjgfcahcgpgmmejjcahcgfhkgfhchhgphhgfghgpcocafhcagcgbhchh\gbgdgicaebgnmdkjhcgjglgjcahkgbgogphegphhgbmficcahhhjhdhemejjhacahhcaemgjgehkgfcaengjhdhehchkmdldhhcaedepeoedebedebegcocafhcagmhfhehjgncadcdadbdjcahcgpglhfanakebhcgdgfcagkgbglgpcahhgpgmgohjcahkgbhhgpgegogjglcahhhcmdldgdgjmficcagegpcaehhcgfgdgkgjcmcagh
C:\Users\juzio\Desktop\FileWriter\eogbhdhemejjhagogjgfcaghhcgbmficcahhcahdhkhhgbgkgdgbhchdglgjgncahehchkgfgdgjgpgmgjghgphhgdhfcaegedcaecgbhfgmgngfhdcocafhgjmejjglhdhkgpmfjlmeihcaglgbhcgjgfhchjcahdhamejjgehkgjmficcagkgfgegogbglcahhcaehhcgfgdgkgjcmcaghgehkgjgfanakcahcgfhahcgfhkgfgohegp\hhgbmficcagcgbhchhhjcagehchfghgpgmgjghgphhhjgdgicaebfdcaekgbgogjhehdgbcagphcgbhkcaebepcaelgbhggbgmgbcmcagbcahegbglmflmgfcahagjgfhchhhdhkgpgmgjghgphhhjgdgicafggfhcgjgbcaegedcagphcgbhkcafagbgogjgpgogjgphdanakeogfgbcafdgngjhcgogjcocafhcagmgbhegbgdgicadc\dadbdhociajddcdadbdicagchjmficcahkgbhhgpgegogjglgjgfgncagngfglhdhjglgbmfiehdglgjgfghgpcahagphegfgohegbhegbcaedgmhfgccaebgnmdkjhcgjgdgbcmcagmgfgdhkcahagfmficgogjmficcahegbgnanakhhhjmficmeifgdhkgogjgfcahcgpgmmejjcahcgfhkgfhchhgphhgfghgpcocafhcagcgbhchh\gbgdgicaebgnmdkjhcgjglgjcahkgbgogphegphhgbmficcahhhjhdhemejjhacahhcaemgjgehkgfcaengjhdhehchkmdldhhcaedepeoedebedebegcocafhcagmhfhehjgncadcdadbdjcahcgpglhfanakebhcgdgfcagkgbglgpcahhgpgmgohjcahkgbhhgpgegogjglcahhhcmdldgdgjmficcagegpcaehhcgfgdgkgjcmcagh\gehkgjgfcahagpcahfgegbgohjgdgicahegfhdhegbgdgicagngfgehjgdhkgohjgdgicahagpgehagjhdgbmficcahamdldmfichegphcgbhcgpgdhkgohjcaglgpgohehcgbglheanakcahkcafagbgogjgpgogjgphdcocaepgecagmgjhagdgbcadcdadcdbcahcgpglhfcaebhcgdgfcagkgfhdhecagehjhcgfglhegphcgfgnca
C:\Users\juzio\Desktop\FileWriter\eogbhdhemejjhagogjgfcaghhcgbmficcahhcahdhkhhgbgkgdgbhchdglgjgncahehchkgfgdgjgpgmgjghgphhgdhfcaegedcaecgbhfgmgngfhdcocafhgjmejjglhdhkgpmfjlmeihcaglgbhcgjgfhchjcahdhamejjgehkgjmficcagkgfgegogbglcahhcaehhcgfgdgkgjcmcaghgehkgjgfanakcahcgfhahcgfhkgfgohegp\hhgbmficcagcgbhchhhjcagehchfghgpgmgjghgphhhjgdgicaebfdcaekgbgogjhehdgbcagphcgbhkcaebepcaelgbhggbgmgbcmcagbcahegbglmflmgfcahagjgfhchhhdhkgpgmgjghgphhhjgdgicafggfhcgjgbcaegedcagphcgbhkcafagbgogjgpgogjgphdanakeogfgbcafdgngjhcgogjcocafhcagmgbhegbgdgicadc\dadbdhociajddcdadbdicagchjmficcahkgbhhgpgegogjglgjgfgncagngfglhdhjglgbmfiehdglgjgfghgpcahagphegfgohegbhegbcaedgmhfgccaebgnmdkjhcgjgdgbcmcagmgfgdhkcahagfmficgogjmficcahegbgnanakhhhjmficmeifgdhkgogjgfcahcgpgmmejjcahcgfhkgfhchhgphhgfghgpcocafhcagcgbhchh\gbgdgicaebgnmdkjhcgjglgjcahkgbgogphegphhgbmficcahhhjhdhemejjhacahhcaemgjgehkgfcaengjhdhehchkmdldhhcaedepeoedebedebegcocafhcagmhfhehjgncadcdadbdjcahcgpglhfanakebhcgdgfcagkgbglgpcahhgpgmgohjcahkgbhhgpgegogjglcahhhcmdldgdgjmficcagegpcaehhcgfgdgkgjcmcagh\gehkgjgfcahagpcahfgegbgohjgdgicahegfhdhegbgdgicagngfgehjgdhkgohjgdgicahagpgehagjhdgbmficcahamdldmfichegphcgbhcgpgdhkgohjcaglgpgohehcgbglheanakcahkcafagbgogjgpgogjgphdcocaepgecagmgjhagdgbcadcdadcdbcahcgpglhfcaebhcgdgfcagkgfhdhecagehjhcgfglhegphcgfgnca\ghgfgo

moja aplikacja odczytuje wynik i zapisuje to jako ciag znaków. Chyba w pewnej części działa.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.