Hollosi Information eXchange /HIX/
HIX CODER 978
Copyright (C) HIX
2000-10-19
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 Hello, (mind)  6 sor     (cikkei)
2 Re: Tomoritenek sok-sok nullat (mind)  65 sor     (cikkei)
3 Re: boot sector... (mind)  39 sor     (cikkei)
4 RE: *** HIX CODER *** #977 / orokzold slager ( 25 sor ) (mind)  20 sor     (cikkei)
5 RE: Kedves CODER-ek! (mind)  20 sor     (cikkei)

+ - Hello, (mind) VÁLASZ  Feladó: (cikkei)

Mar regota probalkozok egy sztring kereso program megirasaval CPP-ban, amely 
a bekert sztringben megkeres egy masikat * es ? lehetoseggel, de valahogy 
mindig van benne valami hiba. Ha valakinek van ilyen kodja akkor nagyon 
szivesen fogadnam.

Koszi.
+ - Re: Tomoritenek sok-sok nullat (mind) VÁLASZ  Feladó: (cikkei)

Hali

> ...
> Gabor

En csak hozzaszolnek roviden a temahoz.
A tomoritesi algoritmusok gyakorlatilag kompromisszumok
bizonyos szabalyszerusegekkel. A lenyeg pedig az ugynevezett
sulyozasokon van. Ami az adott algoritmusnal a legjobban tomoritheto,
azt vagjuk meg amennyire lehet, viszont a dolognak van egy masik
oldala ahol, el KELL viselni, hogy az eredeti merethez kepest noni
fog az adathossz.
Egy kis pelda:
En a huffmann-t hoznam fel, mert arra nehany eve irtam egy nagyon jo 
algoritmust.
Szerintem a legoptimalisabb huffmann-t irtam meg akkor!
Illetve ennek egy butitott verziojat mutatnam be:
van egy file-od, amiben elofordul 4 kulonbozo ertek. Jeloljuk 00,01,10,11-gyel.
A 00 elofordul az esetek 50%-aban a 01 30% az 10 10% az 11 10%.
A kerdes hogy tomoritsem?
Az alapfelallasban mindegyik a sajat kodjaval van tarolva azaz 00,01,10,11.
Most csinaljunk egy fat: a 00>>0, 01>>10, 10>>110, 11>111.
Ezt probald meg lerajzolni egy fakent!
Itt jol latszik, hogy ami 50%-ban fordul elo, azt felere tudom tomoriteni azaz
tarolas szempontjabol 25% lesz az eredetinek.
Lesz olyan resz 30% ami nem valtozik, es lesz aminek no a merete. Ez 20%-os
resz aminek 1.5 *-osere novekszik, igy az eredeti 100% bol lesz
25%+30%+30%=85%!

Amit XiX irt, hogy vannak reszek ahol sok 0 meg 1 van, es vannak
kulonleges reszek, amik 0 es 1 bitek gyors valtogatasabol allnak,
erre En is csak azt tudom mondani, hogy kell egy un byte tomorito (RLE),
ennek is tobb fajtaja ismert, majd az igy kapott kodot egy huffmann-nal
me'g meg kell dobni. Fontos, hogy elore ki lehessen szamolni, a tomorites
utan valoban rovidebb lesz -e a kod, mert ha nem akkor az adott kodolas
nem alkalmazhato.

A RLE-nek van sok fajtaja:
1. hagyomanyos!
vezerkod 0..127 hosszkod 2-129-ig ha sok egymas utan kovetkezo azonos byte van.
vezerkod 128-255 hosszkod 1-128 szamold: 256-vezerkod; ezutan akkora hosszusagu
 nem azonos byte.
pl: 20,40,30,30,30,30,30,20,50 >>lesz belole: $fe(254),20,40,03,30,$fe(254),20,
50
eredmeny: 9 bol > 8byte
Ennek vannak modosult valtozatai pl PCX tipusu, ahhol az ismetlodes 192-255 >>2
-65
szamold: vezerkod-190
utana ismetlodo byte, es 0-191 eredeti adat. Hatrany! a PCX 8bites kep CSAK 192
 szinu lehet!
2. kicsit extra, me'g anno C +4-en talalkoztam vele.
keresunk egy byte -ot a fileban adott szakaszon pl 64kbyte hosszon, ami
nem hasznalt pl van egy byte a 60 ami nem hasznalt. Ezt megjegyeztetjuk
es hasznaljuk a tomoritesnel. Ha talalunk olyan byte-okat, amelyek
azonosak, akkor helyettesitjuk: vezerkod, hosszkod-3, ismetlodo byte;
pl fenti esetre: >>lesz belole: 20,40,60,02,30,20,50 eredmeny 9bol > 7 byte.
3. tovabbi kombinaciok (mindenki sajat fantaziajara bizom :) ) A 2. variaciot
kicsit tovabb lehet gondolni.
Kerdes: mivan ha nem talalunk olyan byte-ot adott szakaszon, ami nem hasznalt? 
;)

Na vegul ez sem lett rovid.

--
 .,--/'{[< Tcc of Inquisition >]}'\--,.
+ - Re: boot sector... (mind) VÁLASZ  Feladó: (cikkei)

hi HIX CODER!

HC> a lemez 0. sectoranak 510 byte-jat (azt olvastam, hogy az elsot illik
HC> betolteni boot-hoz, csak azzal nekem nem mukodott)megirva azt
HC> tapasztaltam, hogy a lemezt innentol kezdve nem latja a DOS, es
HC> formazni sem tudja.
HC> Atneztem az archivumot is, es a bootolasos temaban rengeteg stuffot
HC> talaltam, es erre is talaltam vmi olyasmit, hogyha beken hagyom az
HC> elso 3 byte-ot (EB 3C 90), akkor OK-s marad a lemez a DOS-nak.Ez nem
HC> jott be, asszem vmit kihagyok.
HC> Szoval, hogyan tudnam ujraformazni a porul jart lemezeket? Illetve, ha
HC> erre nincs mod, akkor, hogy tudnam a kovetkezo alkalommal ugy megirni
HC> a boot sectort, hogy kesobb vissza tudjam allitani DOS kompatibilisse
HC> vagy eleve DOS komp. maradjon?
HC> Valaszokat elore is koszonom
vegulis kettot kerdeztel, tehat kettot valaszolok.....
1) hogy tudnam ujra formazhatova tenni?
   foxx egy jo lemezt /ha meg van ijened;))))/ es annak
   leolvasod a bootsectorat, es azt beirod a formazando
   lemezre, es lass csodat, maris tudod formazni....;))))
2) hogy tudnam a bootsectort ugy buheralni, hogy dos formatumu legyen?
   a dolognak mar _majdnem_ a vegere is jartal... eza  eb 3c 90 ez
   nagyon jo.....;)))) es tudod is, hogy micsinal? jmp $+3c ; nop
   amugy egy pojen, ha nincs ott az a bizonyos nop (90) akkor az ms-dos
   mar nem is latja a particiot.....;)))) /no comment/
   na szoval a dosos lemez ugy nez ki, hogy:
   --------------------------------
   jmp bootloader
   nop
   datablock db 3ch dup (?)
   bootloader:
   --------------------------------
   azaz, ha azt akarod, hogy mukodjon, akkor
   az elso 3eh bytet egy az egyben megtartod, es
   moge irod a te kododat... es menni fog....
   ui: ne felejcsd el, hogy 0:7c00-ra fog
   betoltodni a boot sector...

na tovabbi jo kodolast mindenkinek... Mc
+ - RE: *** HIX CODER *** #977 / orokzold slager ( 25 sor ) (mind) VÁLASZ  Feladó: (cikkei)

Hali !

> a lemez 0. sectoranak 510 byte-jat (azt olvastam, hogy az elsot illik
> betolteni boot-hoz, csak azzal nekem nem mukodott)megirva azt
> tapasztaltam, hogy a lemezt innentol kezdve nem latja a DOS, es
> formazni sem tudja.

Az elejen vannak az adatok, amik leirjak a formatumot (szektorszam, 
FAT merete, stb.). Az elso 3 byte amit irtal az tulkepp egy jmp, ami
atugorja ezt az adatteruletet, hogy pontosan mennyi azt most hirtelen 
nem tudom, de az emlekeimben 3Eh el, de a jmp-bol latod. Es kell meg 
az utolso ket byte, ami 55h, AAh (vagy forditva).

Amugy mit jelent nalad az, hogy megirni a boot sectort ?
Elvileg rendbe tudod rakni ugy, hogy egy masik ugyanolyan formatumu
lemezrol atteszed a boot sectort (legalabbis utana majd tudod formazni).

remelem segitettem,

Szaszi
+ - RE: Kedves CODER-ek! (mind) VÁLASZ  Feladó: (cikkei)

> Delphi5 alatt ADOConnection-t hasznalok egy-egy adatbazishoz valo
> csatlakozashoz. Ennek van egy Connection String-je, amit fejlesztesi
> idoben nagyon konnyu beallitani (gondolom, ilyenkor az oledb32.dll-t
> hivja meg). Kerdesem az, hogy hogy tudnam ezt futasi idoben hasonloan
> megtenni (mert az oledb32.dll tudtommal csak *.udl fajlba es fajlbol
> dolgozik). En azt remelem, hogy van egy W. API, amit meg lehet hivni
> es ami Stringet ad vissza. Csak nem talalok ilyet.
Nem hiszem hogy egy stringosszefuzeshez api-t kellene hasznalnod.
Gondolom szerkesztesi idoben ugy csinalod hogy ranyomsz a build gombra es
osszekattintgatod. Megnezted mar mibol all egy ilyen connection string?
Pontosvesszovel elvalasztott ertekekbol. Szerkeszteskor meg tudod nezni az
osszes valtozot aminek igy erteket tudsz adni (az "All" lapon). Ilyenek
vannak hogy auto translate, connect timeout, data source, user ID, password,
workstation ID stb. Pl. user ID=Ufo;password=barf;data
source=ufoserver;connect timeout=666
Az udl fileokban is ugyanez van. Ha atirod a stringet futas kozben es
ujrakonnektalsz, mukodnie kell.

udv
Arp

AGYKONTROLL ALLAT AUTO AZSIA BUDAPEST CODER DOSZ FELVIDEK FILM FILOZOFIA FORUM GURU HANG HIPHOP HIRDETES HIRMONDO HIXDVD HUDOM HUNGARY JATEK KEP KONYHA KONYV KORNYESZ KUKKER KULTURA LINUX MAGELLAN MAHAL MOBIL MOKA MOZAIK NARANCS NARANCS1 NY NYELV OTTHON OTTHONKA PARA RANDI REJTVENY SCM SPORT SZABAD SZALON TANC TIPP TUDOMANY UK UTAZAS UTLEVEL VITA WEBMESTER WINDOWS