🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.asm
Article #2623

Re: Konwerter txt do UTF 8

#2623
From: Kamil
Date: Mon, 28 Mar 2022 07:36
50 lines
3402 bytes
Użytkownik "Bogdan (bogdro)"  napisał:

>  I to jest właśnie to, co poruszyłem w mojej "drugiej istotnej idei": 
> przeszukujesz bufor wejściowy znak po znaku, ale po JEGO znaku, a NIE po 
> znaku, który przerabiasz (tj. "ą", "ć", ...).

Co to znaczy "przeszukujesz"? Czytam znak po znaku porównując go z założonym 
kryterium. Jeśli warunek nie jest spełniony, zapisuję znak bez zmian, a 
jeśli spełniony zapisuję znak w postaci jego reprezentacji w UTF 8.

> Jeśli przerabiasz najpierw wszystkie "ą", potem wszystkie "ć", potem "ę" 
> itd., to faktycznie tworzy to problemy, o których obaj mówimy -
j> ak "wiedzieć", gdzie teraz zapisać wynik.

>  Ja zaś proponuję coś, co można by zapisać pseudokodem:

> odczytać plik wejściowy do bufora input

> i = 0;  // indeks do bufora wejściowego
> o = 0;  // indeks do bufora wyjściowego

> while i < długość input
> if input[i] = 'ą'
> output[o] = "&#XXX;";
> o = o + 6;
> else if input[i] = 'ć'
> output[o] = "&#XXX;";
> o = o + 6;
> .....
> end while

> zapisać bufor output do pliku wyjściowego

> Dzięki takiemu podejściu nie musisz za każdą nową literą zaczynać znów 
> zapisywać do output i uważać, pod jaki adres zapisujesz (tj. pamiętać, ile 
> zmienionych liter było już do tej pory).

To już opisałem wcześniej:

Jeśli by procedura mogła szukać wszystkich znaków trzeba by było wprowadzić
zmienne zawierające wartości liczników, korygowane po każdym znalezionym 
znaku.
To skomplikowane i niepewne.

Spróbuję tak zrobić i sprawdzić działanie. Dlatego pytałem o debugger, abym 
mógł znaleźć błędne miejsca. A pętla zrobiona "ręcznie", czy w postaci 
makroinstrukcji działa tak samo. Może uda mi się wykorzystać podany przez 
Ciebie sposób. Dzięki za kod.

Pzdr
Technical Details
Message-ID: <6241656d$0$479$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!fu-berlin.de!newsreader4.netcologne.de!news.netcologne.de!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer03.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <62388b93$0$481$65785112@news.neostrada.pl> <t1ceqt$kd0$1@gioia.aioe.org> <6239dcd8$0$492$65785112@news.neostrada.pl> <t1dc1f$1hpj$1@gioia.aioe.org> <623a42c7$0$464$65785112@news.neostrada.pl> <623b0844$0$493$65785112@news.neostrada.pl> <623c6b4b$0$465$65785112@news.neostrada.pl> <t1i94p$1ijs$1@gioia.aioe.org> <623e3867$0$480$65785112@news.neostrada.pl> <t1ndg2$tgp$1@gioia.aioe.org> <623f41a8$0$479$65785112@news.neostrada.pl> <t1ph5b$qu7$1@gioia.aioe.org>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!fu-berlin.de!newsreader4.netcologne.de!news.netcologne.de!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer03.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
From: "Kamil" <nospam@tlen.pl>
Newsgroups: pl.comp.lang.asm
References: <62388b93$0$481$65785112@news.neostrada.pl> <t1ceqt$kd0$1@gioia.aioe.org> <6239dcd8$0$492$65785112@news.neostrada.pl> <t1dc1f$1hpj$1@gioia.aioe.org> <623a42c7$0$464$65785112@news.neostrada.pl> <623b0844$0$493$65785112@news.neostrada.pl> <623c6b4b$0$465$65785112@news.neostrada.pl> <t1i94p$1ijs$1@gioia.aioe.org> <623e3867$0$480$65785112@news.neostrada.pl> <t1ndg2$tgp$1@gioia.aioe.org> <623f41a8$0$479$65785112@news.neostrada.pl> <t1ph5b$qu7$1@gioia.aioe.org>
In-Reply-To: <t1ph5b$qu7$1@gioia.aioe.org>
Subject: Re: Konwerter txt do UTF 8
Date: Mon, 28 Mar 2022 09:36:10 +0200
MIME-Version: 1.0
X-Priority: 3
X-MSMail-Priority: Normal
Importance: Normal
X-Newsreader: Microsoft Windows Live Mail 16.4.3528.331
X-MimeOLE: Produced By Microsoft MimeOLE V16.4.3528.331
Lines: 53
Message-ID: <6241656d$0$479$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 91.239.168.63
X-Trace: 1648452973 unt-rea-a-01.news.neostrada.pl 479 91.239.168.63:56699
X-Complaints-To: abuse@news.neostrada.pl
X-Received-Bytes: 3310
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit