Hollosi Information eXchange /HIX/
HIX CODER 526
Copyright (C) HIX
1999-07-22
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 datbase es clipper (mind)  32 sor     (cikkei)
2 Windows DLL VC++-hoz (mind)  13 sor     (cikkei)
3 clipper (mind)  16 sor     (cikkei)
4 Re: timer interrupt UNIXon ? (#525) (mind)  40 sor     (cikkei)
5 Eger Szimulacio (mind)  8 sor     (cikkei)
6 Re: file (trukkos?) attribjai -->Mc (mind)  26 sor     (cikkei)
7 Clipper (mind)  79 sor     (cikkei)
8 Re: Re: timer interrupt UNIXon ? (mind)  53 sor     (cikkei)
9 cerr atiranyitasa (mind)  10 sor     (cikkei)

+ - datbase es clipper (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok !

Elnezest, ha ketszer megy ez a level, de visszadobta a hix mailerje,
hogy tobb helyre kuldtem be. En biztosan egyszer kuldtem el, de O 
biztos jobban tudja :(

 Istvan,  irta:

> Lenne itt par dolog, ami nem teljesen tiszta:
>szoval en ugy kepzeltem el, hogy a datbase egy valtozo, amiben
>mindig mas adatbazis neve van, igy a
>datbase->tick:=ertek[1]
>mindig mas adatbazisban valtoztatja meg a tick mezo tartalmat.
>De ez a clipper szamara szintaktialig nem helyes.

Hmm. Az eredeti peldaban nem emlekszem, hogy szo lett volna tobb
adatbazisrol, ugyanazzal a mezonevvel. Feltetelezve, hogy a datbase
valtozo tartalma egy megnyitott adatbazis hivatkozasi neve:

A datbase->tick:=ertek[1] sor igy tenyleg hibas, de ha kijavitod
arra, hogy
(datbase)->field->tick:=ertek[1]
vagy
replace (datbase)->tick:=ertek[1]
akkor mar nem hibas.
Ha meg a megnyitott adatbazis az aktiv, a (datbase)-> kitetel
elhagyhato.

Sok sikert,
Andras

-- 
+ - Windows DLL VC++-hoz (mind) VÁLASZ  Feladó: (cikkei)

Hali

VC++-hoz szeretnek DLL-t irni. Amit a szakirodalombol tudok az az,
hogy a DLL-ben lehet sajat fuggvenyeket, eroforrasokat es hasonlo
dolgokat tarolni. Ez olyan mint anno a .LIB, nem? Szoval hogyan kezdjek
neki? A VC++ felkinal ilyesfajta varazslokat (MFC AppWizard (dll), Win32
Dynamic-Link Library...), de ez sem segit, ha nem tudom az alapokat.

HELP!!!!
								bye...
> ---------------------------------------------------------------
E-mail: 
Mr Oizo a király (ti  ti  ti  ti  ti ti ti ti tititititit ti)
+ - clipper (mind) VÁLASZ  Feladó: (cikkei)

Hello coderek,

Istvan irta:
>szoval en ugy kepzeltem el, hogy a datbase egy valtozo, amiben
>mindig mas adatbazis neve van, igy a
>datbase->tick:=ertek[1]
>mindig mas adatbazisban valtoztatja meg a tick mezo tartalmat.
>De ez a clipper szamara szintaktialig nem helyes.

Ja, akkor tedd zarojelbe a datbase kifejezest vagy irjal ele egy &
jelet, akkor szerintem sikerulni fog. Lehet, hogy a mezonev ele se
artana egy &. Valahogy igy: &datbase->&tick := ertek[1] vagy
(datbase)->tick := ertek[1]

Best regards,
 Vig Krisztian                         mailto:
+ - Re: timer interrupt UNIXon ? (#525) (mind) VÁLASZ  Feladó: (cikkei)

On Wed, 21 July 1999,  wrote:
> Bizonyos hivasoknal (nem tudom, mit jelent a 
> 'bizonyos') a libc maga elvegzi ezt, ugy latszik, nalam is. Az 
> strace-bol ez latszik: (a fontosabb reszletek csupan:)
> 
> ---------------------------------------
>  .....
> sigaction(SIGALRM, {0x8048540, [], SA_INTERRUPT|SA_NOMASK|SA_ONESHOT},
>          {SIG_DFL}) = 0
> alarm(3)                         = 0
>  .....
> read(0, 0x400c4000, 4096)        = ? ERESTARTSYS (To be restarted)
> --- SIGALRM (Alarm clock) ---
> write(1, "Ebreszto!\n", 10)      = 10
> sigreturn()                      = ? (mask now [])
> read(0, "almasretes\n", 4096)    = 11
> write(1, "ret=\'almasretes\'\n", 17) = 17
> _exit(17)                        = ?
> 
> -----------------------------------------

Ket dolgot tennek hozza, ha mar itt az strace outputja :-)

1) Itt nem a libc hivja meg ujra, hanem maga a kernel. A meghajto 
read-je nem EINTR-el ter vissza, hanem ERESTARTSYS-el, ebbol tudja 
a kernel, hogy ujra kell hivni.

2) Ott a sigaction hivas az elejen, ehhez tartozik egy azonos nevu 
library function is. Ennek meg lehet adni az SA_RESTART flag-et,
ami azt eredmenyezi, hogy a libc hivja ujra a rendszerhivast (ezzel
lehet beallitani a "bizonyos" hivasokat).

Itt tehat mindegy, hogy a gets() meg akar-e szakadni vagy nem, mert a 
kernel mar elobb elfogja az ERESTARTSYS-t es magatol ujrainditja a read-et.

Egyebkent ez az egesz sigaction meg ERESTARTSYS ha jol tudom POSIX
sajatossag - ha nem POSIX rendszeren (is) kell futnia a programnak, 
akkor marad a 'signal' meg az EINTR lekerdezese.

Barna
+ - Eger Szimulacio (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!

Erdekelne, hogy VB5, avagy VC++5 alatt meg lehet e irni egy olyan rutint,
mely szimulalja az egeret. Azaz, tetszes szerint fel le mozgatja a kurzort,
ill. szimulalja a bal ill. job gomb nyomasat.
Es ha lehet hogyan?

Barfer
+ - Re: file (trukkos?) attribjai -->Mc (mind) VÁLASZ  Feladó: (cikkei)

Hi inet,"HIX CODER" >!

iC>     Hogyan lehet beallitani es lekerdezni a fajl atributumait? Mire
iC> hasznalhato a 7-ik es 8-adik bitje? Elore is kossz
hihi, a kerdes yo... kicsit yaccadosztam vele /msdos620 alatt;)/
oszt arra yutottam, hogy nagyivbe szarik ra... ize... sza'l az
int21/getattr,setattr nagyon faszanyosan muxxik, ugyan nem engedi
azokat a biteket allitani, de cserebe o se allittya oket.. azaz,
diskeditorral atnyomtam a file attribjat 0c0h ra, oszt attam
neki par setattrot, es aszt vettem eszre, hogy nem valtosztatta
azokat a biteket... /akar mijen kombinacijoban is vo'ttak...;)/
sza'l feletteb rendes....;))) amugy kulonleges 6asat nem tapasztaltam...
de.... a kulonbozo kommanderproggyk igen erosen beszoptak a doogot...
pl a dn, ha diren volt benyomva a bit, akko' nem tutta valtosztatni
az attributumokat... ha fileon, akkor eleve mar megallapitani se
tutta oket rendesen... ehehehe;)))) a nc ugyan meg tutta allapitani
korrektul az attribokat, de az meg aszonta, hogy nem tuggya allitani
oket... de a debugger nevu kommander;))) egeszen faszanyosan
allitgatta a fileokat attribjat... es aszt kell monnyam, hogy a
diskedit nevu kommander bizonyult a legtokeletesebbnek, mer' az
meg minden tovabbi nelkul tudott mindent csinalni veluk;)))))))
azaz, ha azokat a biteket akarod valtosztatni, akko' nem tucc
mast tenni, min' /int21 et megkerulve/ pl int13 akkal oovasgatod
irogatod a szektorokat...;)))))) no tovabbi yo kodolast mindenkinek...

csaosz amigosz, Mc
+ - Clipper (mind) VÁLASZ  Feladó: (cikkei)

Hali !

> Eloszor is: koszonom szepen mindenki valaszat!
> Lenne itt par dolog, ami nem teljesen tiszta:
> 
> Szabo Andras es Vig Krisztian lenyegeben ua. a tanacsot adtak:
> >field tick in adatbazis_neve
> >
> >vagy
> >
> >- ki kell javitani a
> >  tick:=ertek[1]
> >  sort
> >  field->tick:=ertek[1]
> >  sorra
> >
> 
> szoval en ugy kepzeltem el, hogy a datbase egy valtozo, amiben
> mindig mas adatbazis neve van, igy a
> datbase->tick:=ertek[1]
> mindig mas adatbazisban valtoztatja meg a tick mezo tartalmat.
> De ez a clipper szamara szintaktialig nem helyes.
> 
> Ihasz Zoltan irta:
> >Valoban a replace kell neki !
> >replace tick with ertek[1]
> >
> Igen, ez az en elkepzelesem mellett mukodik.

Kedves Istvan !

Emilben nehezen mennek at a szandekok (tapasztalat) ezert elore bocsatva
hogy a kerdes joszandeku, kerdeznem, hogy te most kezdtel clipperezni,
avagy direkt mazohista vagy ? 

A clipperben az adatbazis munkaterulet eppen arra van kitalalva, hogy az
aktualisan ra megnyitott adatallomanyt (DBF) kepviselje.

A fiuk altal nagyon helyesen (a multkori levelembol kimaradt) emlitett
Field deklaracio pont arra jo, hogy ne kelljen kulon adatbazis nev
tarolo valtozokkal vacakolnod. Tovabba erre szolgal meg az ALIAS nev
amit a USE kulcsszo utan alkalmazhatsz, ha mar mindenkeppen valahogy
nevvel es nem field-del (amit meg tudok erteni) akarsz hivatkozni az
adatbazis mezore.

Ha az adott munkateruletre mindenaron mindig mas adatallomanyt akarsz
megnyitni, (nalam kerulendo munkastilus) akkor olyan modon kell a use-t
alkalmaznid, hogy a nevhivatkozast zarojelbe teszed

adatb = "szamlak"
select 1
use (adatb) alias adatok

- Ezutan akarmit nyitsz meg, hivatkozhatsz igy 
adatok->mezonev

-ha deklaralod a mezonevet mint Field mezonev
akkor sima ertekadasban, mint a hogy a kollegak emlitettek,

- vagy a replace-ben siman is !

Egy dologra azert nem art vigyazni, hogy a megnyitott allomanyban legyen
ilyen mezo !

En az elso (alias neves) megoldast tudnam melegen ajanlani !
Masreszrol hacsak nem olyan progit irsz, ami ezer dbf-et nyitogat
allandoan, akkor egy DBF-et mindig ugyanarra a munkateruletre nyiss meg
! Nalam ez mar tobb eve jol bevalt megszokas. 

Van egy sajat fileopen eljarasom, amivel minden rutin elejen csak a
hasznalt munkateruleteket nyitom meg, majd hasznalat utan mindig zarom
is oket.
Mire a user kier a menube mindig zarva minden DBF, igy egy brutalis
kikapcsolas kevesebb esellyel okoz kart. (es ez tapasztalat alapjan
szinten bevaltnak tekintheto)

-- 
Csiszar L.
http://www.stadium.hu/szt/
+ - Re: Re: timer interrupt UNIXon ? (mind) VÁLASZ  Feladó: (cikkei)

Hi,

 wrote:
> > Itt eppen a gets() varakozik, mikor megjon a signal, de miutan
> > a sig_handler() lefutott, nem folytatodik a gets(), hanem kilep. :(
> 
> Ennalam (Debian, 2.0-as sorozatu kernel, libc5) megvarja a gets, amig
> entert nyomok, szoval nincs vele gond.
Nalam van sajnos. Slackware 4.0, libc5 (5.4.46), a kernel 2.2.9-es.

> Elvileg vizsgalni kell minden
> rendszerhivasnal a return erteket, es ha hiba, es az errno==EINTR,
> akkor felbeszakitotta a hivast egy signal, es ekkor ujra kell
> kezdeni a hivast.
Igy mukodik a dolog. Azt hittem, hogy ha pl. beirtam annyit hogy "almas"
utana megjon a signal, kilep a gets(), majd ujra hivom, es ilyenkor
gepelem be hogy "retes" akkor csak a retes-t fogja visszaadni. De
ugylatszik meghagyta a pufferben a mexakitott gets()-el vegulis ki
nem olvasott karaktereket.
Problema mar csak az hogy az egesz progit tele kell nyomni EINTR
figyelessel, ami eleg csunya lesz... (beleertve az ftplib-et es a GNU
readline vagy editline libet, aminek tobb100k a forrasa)

> Bizonyos hivasoknal (nem tudom, mit jelent a
> 'bizonyos') a libc maga elvegzi ezt, ugy latszik, nalam is.
Ez az amit nem ertek. Van akinel nem szakad meg, van ahol igen.
De ez mitol fugg? libc vagy kernel verzio? Vagy van valami belso
flag ami ezt allitja, de akkor azt hogyan lehet allitani?

> A signal akkor jott be, amikor annyit mar beirtam, hogy almas. Ekkor
> mogeirodott, hogy Ebreszto!, es folytathattam.
Nekem olyankor kilepett a gets().
Most irtam egy new_gets()-t, ezzel muxik:
void new_gets(char *ret){       // tudom hogy a gets() nem void... :)
  do{}while(gets(ret)==NULL && errno==EINTR);
}

> EINTR-et kell figyelni hiba eseten.
Csak hat ezt minden libc (es kernel?) hivasra megcsinalni...

> Szamolaskor nincs gond szerintem.
Ez megnyugtato, nem lenne kedvem minden osszeadas utan ellenorizni az
eredmenyt :)

Koszi a segitseget mindenkinek aki valaszolt. Ha valaki tudja mitol
fugg hogy magatol ujrahivodik-e, az ne tartsa magaban!

 A'rpi / ESP-team

ps: ha mar az inkompatibilitasoknal tartunk... regebben talalkoztam
olyan problemaval, hogy glibc2-n a pclose(NULL) coredumpolt, mig
libc5-on szepen visszaad egy hibakodot. Ez vajon bug vagy feature? :)
(egy "if(p) pclose(p);" megoldotta, csak erdekes volt.)
+ - cerr atiranyitasa (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok,

Hogy tudnam Delphi CBuilder 3 alatt az alabbi tipusu sorokat egy ablakba
atiranyitani valahogy, anelkul hogy kezzel atirnam a cerr hivatkozast? Van
erre egyaltalan lehetoseg?

cerr << "Error message"

Kosz
 Attila

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