IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Kenvil
Člen
Avatar
Kenvil:2.1.2022 15:30

Zdravím pokouším se napsat prográmek, který otevře soubor přečte ho a nahradí Uni znaky, bohužel znak to nenahradí nebo napíše místo něho nějakou kravinu.

Zkusil jsem: Kod je opravdu nahrubo a jde mi čistě o přeložení-předělání 15 souborů ale obsahují 10000 řádků

string line;

    ifstream myfile("lish.txt");

    if (myfile.is_open())
    {
        while (getline(myfile, line))
        {

            cout << line << '\n';
            ofstream myfil("example.txt", ios::in | ios::app| ios::ate);


            if (myfil.is_open())
            {

               const char x = '½';         // - c
               const char y = '¼';         // - e
               const char b = '¾';         // - r
               const char z = '©';         // - C
               const char f = 'õ';         // - n


                replace(line.begin(), line.end(), x, 'c');
                replace(line.begin(), line.end(), y, 'e');
                replace(line.begin(), line.end(), b, 'r');
                replace(line.begin(), line.end(), z, 'C');
                replace(line.begin(), line.end(), f, 'n');
                myfil << line << endl;
                myfil.close();
            }
        }
        myfile.close();
    }

    else cout << "Unable to open file";

Chci docílit: Děkuji za každou radu

 
Odpovědět
2.1.2022 15:30
Avatar
Petan
Člen
Avatar
Petan:3.1.2022 9:40

V jakem to je formátu UTF-8, UTF-16 a převod do ASCII ?
Jinak asi const char x = '½'; // - c by mel byt const wchar x L'½';

 
Nahoru Odpovědět
3.1.2022 9:40
Avatar
Filip Šimek
Správce kvízů
Avatar
Filip Šimek:28.3.2022 23:18

Také by bych deklaroval ty proměnné před cyklem ;)

 
Nahoru Odpovědět
28.3.2022 23:18
Avatar
DarkCoder
Člen
Avatar
DarkCoder:29.3.2022 2:34

Tak hlavně zadání je zcela nejasné, je třeba jasně určit z čeho na co převádět. Dále konverzní tabulky bývají obsaženy v souboru, jehož obsah je pak ukládán do pole, nikoli napevno zadané v programu a ještě pro každou dvojici znaků do samostatné proměnné. Nikdo nebude chtít definovat konverzní dvojici pro desítky, stovky, či tisíce variant. Pro každý znak se nebude procházet celý řetězec, to by bylo dosti neefektivní.

Postup je následující:

Je třeba určit, v jakém kódování je daný soubor. Na základě tohoto načtu data o konverzi z čeho na co z patřičného souboru do pole. Index pole odpovídá hodnotě znaku z čeho. Hodnotou pole na daném indexu je hodnota znaku na co. Postupně čteme znaky ze souboru, zjistíme hodnotu znaku a přečteme hodnotu na indexu odpovídající hodnotě znaku a zapíšeme hodnotu na daném indexu do nového souboru. Po přečtení celého souboru a zápisu odpovídající konverze do nového souboru vzniká výsledný text ve stanovené konverzi.

Nahoru Odpovědět
29.3.2022 2:34
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.