Hollosi Information eXchange /HIX/
HIX CODER 908
Copyright (C) HIX
2000-08-10
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 Re: mp3 (mind)  108 sor     (cikkei)
2 Re: Parh. port programozasa (mind)  7 sor     (cikkei)
3 Re: C-editor (mind)  12 sor     (cikkei)
4 Re: [coder] Delphi kepgorgetes (mind)  17 sor     (cikkei)
5 Re: Komponens? (mind)  16 sor     (cikkei)
6 JPEG, GIF komponens/decoder Delphi ala (mind)  15 sor     (cikkei)
7 OpenGL (mind)  15 sor     (cikkei)
8 Excel VB (mind)  15 sor     (cikkei)
9 Re: Eppen futo exebe iras ... (mind)  25 sor     (cikkei)
10 fivewin (mind)  38 sor     (cikkei)
11 Wildcard (mind)  9 sor     (cikkei)
12 Re: Eppen futo exebe iras + Nyomtatas (mind)  22 sor     (cikkei)
13 Koszonet (mind)  6 sor     (cikkei)
14 Re: Delphi-kepgorgetes (mind)  7 sor     (cikkei)
15 Atlatszo ablak Delphi-ben (mind)  23 sor     (cikkei)
16 Re: nasm begin problema (mind)  54 sor     (cikkei)
17 Bp patch (mind)  10 sor     (cikkei)
18 NG adatbazis (mind)  8 sor     (cikkei)
19 adatok egy dword-bol (mind)  8 sor     (cikkei)

+ - Re: mp3 (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok !

 erdeklodott mp3 szerkezete irant.
Most hirtelen ennyit tudtam osszeszedni:

> ---------------------------------------------------------
Egy kis info az mp3 fileok szerkezeterol:

Az mp3 fileok keretekbol (blokkokbol) allnak. Ezek mindegyike onallo
fejleccel rendelkezik, es elvileg ezek menten a file darabolhato, es
tetszoleges sorrendben osszemasolhatok. Mivel a kereteknek sajat
fejlece van, es ebben a fejlecben minden szukseges informaio (bitrate,
samplerate stb...) le van irva, akar eltero keretek is egymas utan
rakhatok, esetleg az lehet gond hogy nem boldogul vele barmelyik
lejatszo.

Bizonyos mp3 file-ok eljen meg egy RIFF fejlec is van, en itt most
ettol eltekintek.

A tovabbiakban a keretek szerkezeterol irok.

Minden keret FF-el kezdodik, tehat ha az mp3 file elso byteja nem FF
lenne akkor ott valami problema van. (Esetleg az a RIFF fejlec...)

A keretek hossza nehanyszaz byte - 1 kilobyte korul van. A fejlec
hossza 4 byte, ezutan az adatresz kovetkezik. Az adatresz hossza a
fejlec adataitol fugg, valtozo. A fejlecben bitmezok taroljak az
informaciokat, tehat ezeket shiftelessel, maszkolassal kell kiszedni.

Egy programreszlet, ami kiszedi a megfelelo bitcsoportokat:
buf[0]...buf[3] jelenti a negy byte hosszu fejlecet. Ez a kodreszlet
egy mpeg dekoder forrasabol szarmazik.

-------------------------------
// buf[0] mindig 0xff kell legyen !
id = (buf[1] & 0x08) >> 3; // Ez a bit meg kesobb kell !
option = (buf[1] & 0x06) >> 1;
prot = (buf[1] & 0x01);
br_index = (buf[2] & 0xf0) >> 4; // bitrate index
sr_index = (buf[2] & 0x0c) >> 2; // samplerate index
pad = (buf[2] & 0x02) >> 1;
private_bit = (buf[2] & 0x01);
mode = (buf[3] & 0xc0) >> 6;
mode_ext = (buf[3] & 0x30) >> 4;
cr = (buf[3] & 0x08) >> 3;
original = (buf[3] & 0x04) >> 2;
emphasis = (buf[3] & 0x03);
-----------------------------

Ebbol most csak az id, br_index, sr_index fog kelleni, a tobbi
jelenteset nem ismerem.

A teljes keret hosza (fej+adatok egyutt):

kerethossz = 2880 * brtable[br_index] / srtable[sr_index];

A brtable es srtable egy-egy tablazat.

Abban az esetben, ha az id erteke 0, ezek a tablazatok kellenek:

ststic int brtable[]={
  0,8,16,24,32,40,48,56,64,80,96,112,128,144,160,0};
static int srtable[]={
  441,480,320,0};

Ha az id erteke 1, akkor ezek a tablazatok kellenek:

ststic int brtable[]={
  0,32,40,48,56,64,80,96,112,128,160,192,224,256,320,0};
static int srtable[]={
  882,960,640,0};

Nekem nagyon gyanus, hogy ez az id bit tulajdonkeppen a mono/stereo
uzemmodot jelenti ???

A brtable ertekei tulajdonkeppen a bitratak, kbps -ben, az srtable-ben
pedig a samplerate van, kiloHertzben 10-el felszorozva.

Nezzunk egy peldat:
-------------------

Egy keret fejlece: 0xff,0xfb,0xb2,0x44
ebbol: id=1, br_index=0xb (11 decimalis), sr_index=0

bitrate: brtable[11]=192
samplerate: srtable[0]=882  (44.1 kHz stereo)

hossz: 2880 * 192 / 882 = 626.93
Felfele kerekitunk, tehat 627 byte hosszu a keret teljes hossza.
A keret vege utan rogton kezdodik a kovetkezo keret.

Masik pelda:
------------

feljec: 0xff, 0xfb, 0x92, 0x04
id = 1, bitrateindex = 9, srindex = 0

hossz = 2880 * 128 / 882 - 417.95
Felkerekitve:418, tehat a teljes keret 418 byte hosszu.
> -----------------------------------------------------------

Jo szorakozast !
Remelem ezzel tudtam segiteni ...

Egyebkent valamelyik viszonlag uj CHIP CD-n talaltam mp3 kevero
programot. (olvasok alkonyvtarban)

- Tamas -
+ - Re: Parh. port programozasa (mind) VÁLASZ  Feladó: (cikkei)

>A PC parhozamos portjanak porgramozasarol keresek magyar nyelvezetu
>eirast. Normal es EPP modban is, ha lehet.

konyv formaban tudok csak ajanlani leirast (ha jol emlexem) letezik
egy periferiak programozasa c. konyv abban errol is van par oldal.....

Szauron
+ - Re: C-editor (mind) VÁLASZ  Feladó: (cikkei)

>ajanljatok valami olyan text-editort, ami segit a kodolasban. Olyanra
>gondolok, mint a szintaktika kiemelese stb.

kivalo windows-s szovegszerkeszto minden programozasi nyelvhez a MED
(majdnem)mindent tud amit csak tudhat 1 szovegszerkeszto

a netrol letoltheto a : www.utopia-planitia.de cimrol

kulon kiemlenem a project kezeleset ! (a BC++ - hoz csinlahatsz vele
szinte VC++ szintu IDE-t)

Szauron
+ - Re: [coder] Delphi kepgorgetes (mind) VÁLASZ  Feladó: (cikkei)

From: 
Time: Mon Aug  7 23:14:12 EDT 2000 CODER #907
> - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> Hogyan lehet Delphi3-ban megoldani, hogy ha egy Image-ba betoltok
> egy nagy kepet, ami nagyobb, mint a kliensterulet, vagyis nem fer ra
> az egesz, hogy tudok gorditosavokat varazsolni a formra, vagy az
> Image-ra? Az image Align tulajdonsaga:alClient.

Az en megoldasom: nem tul "eroforrastakarekos" szvsz, de jo... Szoval
az Image-et tedd ra egy ScrollBoxra, a ScrollBox.Align := alClient, az
Image.Align := alNone. Tedd a bal felso sarokba (marmint a kepet...)
es allitsd olyan nagyra, amilyenre tetszik...

Minden jot:
Gaby
______________________________________________________________________
http://www.sch.bme.hu/~gyoreg  mailto:  ICQ#:19934854
+ - Re: Komponens? (mind) VÁLASZ  Feladó: (cikkei)

On Wed, 9 Aug 2000, xabi wrote:
> Azt hiszem nem igazan ertem a kerdest. Ird bovebben. Elore definialt
> komponens vagy sajat gyartmany? Es miert muszaj a sajat Canvas-at
> hasznalja?

Szoval: csinalnek egy TWinControlbol szarmazott komponenst, csak nem
tudom, hogyan kellene a dolgait kirajzolni (keret, ilyesmi), mert
nincs sajat Canvas-a. Sot, meg Paint metodusa sincs. (Gondolom,
ilyenkor a PaintWindow, vagy a Repaint metodust kell hasznalni). Es
ami meg szinten baj:a parent-jenek sincsen canvas-a. Mit lehet
ilyenkor tenni?

Koszonok minden valaszt:
Gaby
______________________________________________________________________
http://www.sch.bme.hu/~gyoreg  mailto:  ICQ#:19934854
+ - JPEG, GIF komponens/decoder Delphi ala (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok - megint en vagyok.

Nem tudtok valahol egy _gyors_ jpeg & gif kicsomagolot? Thumbnaileket
kellene gyartania a programomnak, meghozza kabe fel/egymegas kepekbol,
es meg emellett is elfogadhato sebessegunek kellene lennie.

A Delphi beepitett cuccait hasznalva igen lassu lett az eredmeny
(TImage.Loadfromfile, aztan stretch/...), ennel legalabb ketszer ilyen
gyorsnak kellene lennie.

Koszonok minden segitseget:

Gaby
______________________________________________________________________
http://www.sch.bme.hu/~gyoreg  mailto:  ICQ#:19934854
+ - OpenGL (mind) VÁLASZ  Feladó: (cikkei)

>Felado :  [Hungary]
>Temakor: OpenGL ( 23 sor )
>Idopont: Tue Aug  8 15:24:13 EDT 2000 CODER #907

>OpenGL -es programokat szertnek irni, ehhez kernem a segitsegeteket.
>Most probalkoznek ezzel eloszor.
>Tudnatok ajanlani valami bevezeto irodalmat a temaban ?
>Nem referencia kezikonyvre gondoltam, hanem olyan dokumentum erdekel
>ami valoban elmagyarazza hogy hogyan mukodik ez a dolog.

Szerintem mindenekelott latogass el az www.opengl.org-ra. Minden itt
van amit szemed-szad kivan. En szemelyesen Visual C++-ban keszitettem
nehany egyszeru programot, ezeket a doksiban talalhato peldak szerint
irtam.
        joco
+ - Excel VB (mind) VÁLASZ  Feladó: (cikkei)

Kedves Lista!

Szeretnek egy class-t irni. Maga a class egy diagram. Valtozo szamu
pontbol all, amit a .add fuggvennyel adnek hozza es a .show-val
jelenitenek meg, ha mar minden pont be van adagolva. Hogyan tudok
VB-ben dinamikusan tomboket foglalni? A ReDim nem szerencses, mert
mindig kitorli az uj tombot es ezert mindig ki kell masolni a tomb
eredeti tartalmat, megnovelni a meretet es visszamasolni. (Esetleg
cserelgetni a 2 tombot, de az mar csunya kodot eredmenyez :-) Plusz
felesleges 2*-es tarolast). Feleslegesen lefoglalni egy 1000 elemu
tombot nem szeretnek (foleg, hogy lenne egy string tomb is...).

Hogyan lehet minig egy uj elemet hozzaadni egy tombhoz?

EIK && udv From:, a szamlatomb
+ - Re: Eppen futo exebe iras ... (mind) VÁLASZ  Feladó: (cikkei)

Gyerekek, ne szerencsetlenkedjetek mar, hanem gondolkodjatok is egy
kicsit!

A Windows ha elinditod a programot, akkor levedi a programot
tartalmazo filet mindenfajta modositas ellen meg meg torles ellen is.
Ezt azert csinalja, mert ha keves a memoriaja, es ki kell lapoznia a
program egy-egy reszet a memoriabol, akkor igy nem kell a swap
teruletre tenylegesen kiirni, hanem egyszeruen csak invalidaljak a
page-et, es legkozelebb ha hivatkozik valaki arra a teruletre, pl.
futnia kellene az ott levo kodnak, akkor az oprendszer azt a teruletet
nem a swap-bol fogja visszatolteni a memoriaba, hanem az eredeti EXE
file-bol.

Ezert van az, hogy az uninstallalasnal nem lehet kitorolni minden
reszet a felinstallalt alkalmazasnak -- illetve nem olyan egyszeru azt
megtenni, mint azt az ember elsonek gondolna. Ha modositani akarod az
EXE-det, akkor mindenkeppen kulso programot kellene hasznalnod (pl.
egy setup program). Az adatokat pedig vagy adatfile-ban, vagy a
registry-ben tarold, es akkor nem lesz gondod semmivel sem.

Udv, Tamas

Tamas Rudnai / Sophos Plc
mailto:
http://www.sophos.com
+ - fivewin (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!

Eloszor is koszonom az excell->dbf kerdesemre a valaszt, a dolog most
mar mukodik, de itt jonne a kov. kerdesem:

A programot clipper/fivewinben irom. Nem tudom, hogy dolgozott-e mar
valaki ebben.

Ha kimentem az adatbazist excellbol dbf-be, akkor egy konvertalast
kell veghezvinnem a hosszu karakterek miatt.
Amikor megcsinalom, szepen mukodik, de amikor en mar a prg-ben akarom
boviteni az adatbazist, akkor az enyemek rosszul jelennek meg pont a
konvertalas miatt.

A konvertalas a kov. keppen nez ki:

FUNCTION OA(cSzoveg)  
RETURN OemToAnsi(cSzoveg) 

Tehat a browse ablakba igy olvasom be az adatot:
OA(dbf_fajl->mezonev)

Ez ugye mindaddig mukodik, amig en a prg-ben nem akarok uj rekordot
felvinni.

A prg.ben az uj rekordot mindenfajta konvertalas nelkul irom fel

dbf_fajl->mezonev := Alltrim(valtozo)

Milyen konvertalast kellene csinalnom, hogy megegyezzem az excell
altal kimentett adatbazissal ?

Valaszokat elore is koszonom !

Minden jot,
               Ricsi
               mailto:
               Ifjúsági Unió: http://w3.swi.hu/xifu
+ - Wildcard (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok !

Egy "egyszeru" algoritmusra lenne szuksegem:
Hogy tudom a legegyszerubben eldonteni, hogy egy adott string,
megfelel-e egy adott wildcardnak ? ( csak a * es a ? hasznalhatoak)

Udv,

Tomi
+ - Re: Eppen futo exebe iras + Nyomtatas (mind) VÁLASZ  Feladó: (cikkei)

Udv!

> Ezeket egy strukturaban tarolom. Ennek a strukturanak van ket eleme,
> ami olyan szamokat tartalmaz, ami az exeben sem kod, sem adat
> formajaban nem fordul elo (ezek erteket ki kell totozni). Ezekre az
> ertekekre keresek az exe-ben, es tudom, hogy ettol az ertektol hany
> byte tavolsagra van a struktura eleje, ahol mar tudom modositani a
> megfelelo erteket.

Nekem olyasmi jutott eszembe, hogy forditas utan egy adatrekordot
fuzok az exe-hez (ez sajna maceras...). A rekord utolso eleme
megmutathatja a meretet, igy megtalalhato az eleje is. Ez magaban nem
erzekeny az exe-ben valo modositasokra, de egy hozzaakaszkodo virusra
igen...

A nyomtatas topichoz:
En winapi hivasokkal lekerdeztem egy csomo mindent a nyomtatorol
(hdpi,vdpi,me'retek), es igy egy tCanvas-re ugyanaz a kod rajzolta ki
a preview-t, mint a nyomtatast. Eleg jol mukodott, csak eros
kicsinyitesnel lett pontatlan.

bye://guci
+ - Koszonet (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!

  Mindenkinek koszonom aki segitett, a C-editoros kerdesben.

--
Üdv, Attila
+ - Re: Delphi-kepgorgetes (mind) VÁLASZ  Feladó: (cikkei)

>Hogyan lehet Delphi3-ban megoldani, hogy ha egy Image-ba betoltok egy
>nagy kepet, ami nagyobb, mint a kliensterulet, vagyis nem fer ra az
>egesz, hogy tudok gorditosavokat varazsolni a formra, vagy az
>Image-ra? Az image Align tulajdonsaga:alClient.
Rakd az Image-t egy ScrollBox-ba (utobbi is az Additional palettan van)!

Gabor
+ - Atlatszo ablak Delphi-ben (mind) VÁLASZ  Feladó: (cikkei)

Hello!
         
Szeretnek irni egy olyan programot aminek a form- jabol csak a szoveg
latszodik, azaz atlatszo. Eddig mar el is jutottam. A problemam az,
hogy a hatter nem frissul, igy pedig a meretezes es a mozgatas eleg
erdekes eredmenyeket produkal. Jelenleg manualisan lehet a hatteret
frissiteni, mert ha allandoan frissitenem akkor villogna. Mas, de
lenyegeben a fentiekhez kapcsolodik: Ha valamilyen program a teljes
kepernyot hasznalja (mint a legtobb jatek vagy mint az Active Movie
lejatszo), akkor ha en a GetDC(0)-val lekerem a Desktop Window DC-jet
es erre rajzolok ill. irok akkor fog ez latszodni azaz a teljes
kepernyos program kepernyojet felulirja? Ha igen az jo volna, de van
meg egy problema: hogyan lehet ugy irni/rajzolni a Desktop Window-ra,
hogy az eredetileg ott levo dolgokat vissza tudjam allitani? Pl. ha
egy olyan oraprogramot szeretnek csinalni ami a jobb felso sarokban
jar, de csak a szamjegyek (digitalis ora) latszodnanak belole. Ha
odahuzok egy ablakot, az sem zavarna, csak jar tovabb,
rendithetetlenul. Ha meg pl. a teljes kepernyos programnal is
latszodni, az mar maga lenne a csoda. :)

        Elore is koszonok minden segitseget!
        
            Udv: Lukacs Arpad
+ - Re: nasm begin problema (mind) VÁLASZ  Feladó: (cikkei)

Hi !

Sajnos nem pontosan ertem mit kene a programnak csinalnia ? A INT
21h/AH=02h megszakitas a DL-ben levo karaktert irja ki a standard
outputra (DOS2+ alatt atiranyithato). Szoval ebben az esetben a DL egy
input parameter es nem output-ot ad vissza.
A program tobbi reszebol viszont azt latom. hogy mintha a datum-ot
szeretned lekerdezni es ellenorizni, hogy a honap melyik napja van.
Erre a DOS az INT 21h/AH=2Ah funkcija szolgal es valoban a 
DL-ben jon vissza a nap. 
A lefagyas szerintem meg azert van mert a progi vegen egy ret-tel
visszatersz....de hova ??? Ez a progi egy onmagaban mukodo .com lesz
es nem egy eljaras, szoval szerintem a vegen a standard DOS-os
kilepest kell alkalmazni:
INT21h/AX=4c00h

Ime a mukodo progi:

ORG 100h

[SECTION .text]
start:
 mov ah,2ah  ; system datum lekerdezese
 int 21h
 ;; DL-ben jon vissza a nap
 cmp dl,6
 
 mov ah,09h  ; kiiratas, mindket esetben
 je .igen
 .nem:
 mov dx,snem
 int 21h
 jmp .exit

 .igen:
 mov dx,sigen
 int 21h


 .exit:
 mov ax,4c00h
 int 21h

[SECTION .data]
 sigen db "a nap 6-ika$",0
 snem db "a nap nem 6-ika$",0

Remelem segitett...
Bela

> -----------------------------------------
Email: 
ICQ:   81433392
> -----------------------------------------
+ - Bp patch (mind) VÁLASZ  Feladó: (cikkei)

Hi coderek!

Van egy eleg sujos, problemam. Nem fut a Borland Pascal 7.0 a gyors
gepeken. Gondolom ez nem ujdonsag. (delay). Erre beszereztem egy
javitott Turbo.tpl-t es Tpp.tpl-t, de sajnos az eredmeny meg mindig:
Run time error 200. Legalábbis az ismerősöm 433Mhz-es gepen. Erdekes,
hogy kisse lassabb gepen meg mukodik. Ha valaki tudna kuldeni egy
mukodo patch-et, vagy linket, azt megkoszonnem.

Elore is kiszi: Vili
+ - NG adatbazis (mind) VÁLASZ  Feladó: (cikkei)

Szasztok!

Találtam egy fájlt:
 - a neve  ASI.NG  (elvileg assembly leírás...)
 - egy adatbázis (bináris fájl de a fejlécben ez volt) :  adatbázis v0.65
Tudja vki, hogy ezt hogyan lehetne megnyitni ? Milyen programmal ?

üdv: Mike
+ - adatok egy dword-bol (mind) VÁLASZ  Feladó: (cikkei)

Hi!

Ismét...:)))
 DWORD Attribs = GetFileAttributes( "c:\\autoexec.bat" );
 Hogyan hámozható ki az Attribs változóból hogy milyen az a fájl
 milyen tulajdonságokkal rendelkezik...???
 bool archiv =  ( ide kéne vmi feltétel... )  ? true : false;
 tsa & kösz: Mike

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