Hollosi Information eXchange /HIX/
HIX CODER 525
Copyright (C) HIX
1999-07-21
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 Re.: clipper (mind)  32 sor     (cikkei)
2 Re: timer interrupt UNIXon ? (#524) (mind)  66 sor     (cikkei)
3 Project file es lefagyas (mind)  8 sor     (cikkei)
4 =?UNKNOWN?Q?=EDraht=F3/olvashat=F3?= pointer glideban. (mind)  9 sor     (cikkei)
5 Re: winfos uzenetek (mind)  28 sor     (cikkei)
6 Vb5 Kerdes (mind)  10 sor     (cikkei)
7 Re: Window uzenetek (mind)  16 sor     (cikkei)
8 Clipper ertekadas (mind)  40 sor     (cikkei)
9 java es egerkurzor (mind)  12 sor     (cikkei)
10 Kerdes: VB --> MSFlexGrid (mind)  22 sor     (cikkei)
11 Re: timer interrupt UNIXon ? (mind)  41 sor     (cikkei)
12 Re: Window uzenetek (mind)  23 sor     (cikkei)
13 Re: DELPHI 4 help (progfuttatas pasbol) (mind)  7 sor     (cikkei)
14 Re: timer interrupt UNIXon ? (mind)  49 sor     (cikkei)
15 Re: Re: timer interrupt UNIXon ? (mind)  23 sor     (cikkei)

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

Sziasztok,

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.

Udvozlettel:
            Istvan
            
+ - Re: timer interrupt UNIXon ? (#524) (mind) VÁLASZ  Feladó: (cikkei)

> Eloszor a SIGALRM/alarm() parossal probalkoztam, majdnem jo,
> csak az a baj hogy utana nem egeszen jol folytatodik a
> megszakitott kod, olyan mintha kilepne egy szinttel:
> Pl.:
>   #include <stdio.h>
>   #include <signal.h>
> 
>   void sig_handler(int par){ printf("Ebreszto!\n"); }
> 
>   main(){
>   char ret[256];
>     strcpy(ret,"nem jo");
>     signal(SIGALRM,sig_handler); alarm(3);
>     printf("Waiting...\n"); gets(ret);
>     printf("ret='%s'\n",ret);
>   }
> 
> Itt eppen a gets() varakozik, mikor megjon a signal, de miutan
> a sig_handler() lefutott, nem folytatodik a gets(), hanem kilep. :(
> Annyira kilep, hogy hozza se nyul a parameterkent kapott valtozohoz.
> (az utolso printf "ret=nem jo"-t ir ki)

Ez igy nalam Linuxon megy:

 devel]$ gcc -o sig sig.c
/tmp/ccA5EqFL.o: In function `main':
/tmp/ccA5EqFL.o(.text+0x5f): the `gets' function is dangerous and should not 
be used.
 devel]$ ./sig
Waiting...
Ebreszto!
hello, world
ret='hello, world'
 devel]$

(elinditas utan megvarom, hogy kiirja az "Ebreszto!"-t, aztan irom be,
hogy "hello, world". Az is megy, ha eloszor beirom, hogy "hello",
megvarom az "Ebreszto!"-t, aztan beirom hogy "world".)

Hogy mi tortenik ilyen szituaciokban, az nincs pontosan definialva.
Idezet a glibc dokumentaciobol:

> Primitives Interrupted by Signals
> 
> A signal can arrive and be handled while an I/O primitive such 
> as open or read is waiting for an I/O device. If the signal handler
> returns, the system faces the question: what should happen next? 
> 
> POSIX specifies one approach: make the primitive fail right away. 
> The error code for this kind of failure is EINTR. This is flexible, 
> but usually inconvenient. Typically, POSIX applications that use 
> signal handlers must check for EINTR after each library function 
> that can return it, in order to try the call again. Often programmers 
> forget to check, which is a common source of error. 
> [...]

Eszerint jo mindig lekerdezni, hogy EINTR-el szakadt-e meg a gets(),
es ha igen, akkor ujrainditani.

> Kovetkezo kiserletben fork()-oltam egy gyereket :), aki 3 masodpercenkent
> kuld egy SIGUSR1-et az annyanak, de az szinten kilep a gets()-bol.

Esetleg nezd meg a setitimer(2) fuggvenyt, ezzel periodikusan "tuzelo"
timereket installalhatsz.

Barna
+ - Project file es lefagyas (mind) VÁLASZ  Feladó: (cikkei)

Project file-t szeretnek csinalni C-ben !!!
Lefagy a gepem !!! (Tobb gepen is elofordul.)
Segitsen legyszi, ha van ki tud................. Szakdogat kell irnom !!!
Orokke uldozze halam minden probalkozot:
PS: Maganba is legyszi !
<<<<<<<<<<< Best Regards: Bacsek Lajos >>>>>>>>>>>
--------------mailto: -------------
------------------http://www.gtbbp.hu/~bacsek----------------
+ - =?UNKNOWN?Q?=EDraht=F3/olvashat=F3?= pointer glideban. (mind) VÁLASZ  Feladó: (cikkei)

Yo Coders,

Szerintetek meg lehet azt oldani glideban, hogy egy lockolt
pointerről egyszer olvasok, utána visszaírom az értéket (, a la
DirectX) . Vagy mindenképpen kell egy írható meg külön
egy olvasható pointer?

Üdv,

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

Hali!

Az uzenetek lekerdezesere, hogy mik is mennek a progik kozott,
a visual c-hez adott spy.exe -t szoktam hasznalni. 27136 byte.
Kivalasztod, hogy milyen tipusu uzeneteket, melyik ablaknak szolokat
szeretnel latni, aztan o loggolja...

Futo prg-k lekerdezese:

EnumWindows   -osszes foablak felsorolasa, var egy EnumWndProc -ot toled,
amit minden foablak hwnd-jevel meghiv, es te ott aztan valami neked tetszot
csinalsz vele....

EnumTaskWindows  - egy taszk osszes ablakat felsorolja, var egy
EnumTaskWndProc -ot, lasd feljebb..

TaskFirst, TaskNext   ezek meg a futo taskokat soroljak fel....de ehhez nem
kell visszahivhato fuggveny

GetNumTasks   - futo taszkok szama

No erre probalkozz tovabb!

Ja, ezek 16 bitesek voltak, 32 bitre is van hasonlo, ha kell majd
utananezek. Ha kell bovebb info is, majd kuldok nemi forrast.

Udv
Steve
+ - Vb5 Kerdes (mind) VÁLASZ  Feladó: (cikkei)

Tisztelt Uraim/Holgyeim

Szoval feltettem az enterprise valtozatot szorakozaskepp.
Fel akarta meg telepiteni az IE x.xx verziojat, amire erosen
tiltakoztam. Egy figyelmezteto uzenet utan tovabbment.
Most viszont a meglevo ocx-ek fele nem muxik. Az IE feltetele
nelkul van e erre megoldas. 

Koszonom
Bogi
+ - Re: Window uzenetek (mind) VÁLASZ  Feladó: (cikkei)

Futo progik:
Win9x/NT: Process32First  es  Process32Next
Win3.x: TaskFirst  es TaskNext

Uzenetek elcsipese:

Win9x/NT: SetWindowsHookEx
Win3.x: SetWindowsHook

> wrote in message news:...
| A futo programok azonositoit szeretnem lekerdeezni. Ehhez igazabol semmi
| otletem sincs.
|
| A programombol szeretnem lekerdezni egy masik progi altal kuldott
| uzeneteket. (pl.: ha rakattintottak a Winampban a Play  gombra, akkor
| azt az en progim is tudja.)
+ - Clipper ertekadas (mind) VÁLASZ  Feladó: (cikkei)

Hi !

> Nem ertem, miert nem mukodik az alabbi egyszeru kis program.
> 
> Az adatbazis letezik. Csak az ures rekordot adja hozza, de az
> erteket nem, pedig az megvan, letezik. Esetleg valami replace-
> szeru dolog hianyozna?
> A kony szerint ami nekem van ennek mukodnie kellene... :(
> 
> DbUseArea(,,datbase)
> DbGoBottom()
> DbAppend()
> tick:=ertek[1]
> DbCloseAll()

Probald hagyomanyosabban megkozeliteni a problemat.
Sele 0
use datbase   // ha tenyleg igy irjak !
append balnk  // go bottom nem kell, ide pedig hasznalhatsz 
              // dbappend()-et is ha ahhoz van gusztusod
<ertekadas>   Itt elvileg valoban mukodnmi kellene a te megoldasodnak is
              de ha nem megy hasznald a 
replace tick with ertek[1]   format.
close all

IMHO a ahagyomanyos forma sokkal olvashatobb, mint mindet fuggvenykent
gepelgetni.

Annal is inkabb mert a clipper preprocesszort hasznal, ugyhogy a ilyen
sorokat a gep maganak ugyis fuggvenyhivassa alakitja mielott tenyleg
leforditja.

Ha nagyon erdekel, nezd meg a Clipper.exe kapcsoloit, fogsz talalni egy
kapcsolot, amivel kiszedheted belole a preproceszalt kodot !
Nagyon erdemes egyszer belenezni, hogy mibol mit csinal !!

Udv:
-- 
Csiszar L.
http://www.stadium.hu/szt/
+ - java es egerkurzor (mind) VÁLASZ  Feladó: (cikkei)

hi,

java-ban, vagy esetleg javascript-ben kellene valtoztatnom az egerkurzor
alakjat. sajnos erre vonatkozoan nem talaltam sehol semmit, pedig vegulis
egy eleg egyszeru feladatrol van szo ;-] olyan otletem van, hogy pl. a
html lapon lehetne egy layert mozgatni az onMouseMove event-re, vagy
ilyesmi, de ez korulmenyes, es az egerkurzor is lathato marad. udv,

medve

mailto:
mailto:
+ - Kerdes: VB --> MSFlexGrid (mind) VÁLASZ  Feladó: (cikkei)

Hello Coderek,

Az a kerdesem, hogy Visual Basicben (5/6) az ' MSFlexGrid '
elemmel hogyan lehet azt elerni, hogy a kivalasztott (highlight) 
sorok azonos oszlopba tartozo adatait (integerek) adja ossze 
es azokat pl. egy textbox-ba irja be...

Tehat pl. adott az alabbi 4 soros es 6 oszlopos tablazat:

7   5   3   8   3   9
1   3   7   1   2   4  <== Kijelolve (a)
6   2   1   3   4   5  <== Kijelolve (b)
8   7   3   2   1   7

Eredmeny (a+b):
7   5   8   4   6   9

Szoval a kijelolt sorok azonos oszlopba tartozo adatait kellene 
osszeadni...
Koszi az otleteket,
Andras

+ - Re: timer interrupt UNIXon ? (mind) VÁLASZ  Feladó: (cikkei)

On 19 Jul 99 at 18:33,  > 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. 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. 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)                        = ?

> ------------------------------------------

A signal akkor jott be, amikor annyit mar beirtam, hogy almas. Ekkor 
mogeirodott, hogy Ebreszto!, es folytathattam.

> Nem feltetlenul gets() fog futni (ha csak ez lenne, akkor ki
> lehetne kerulni ciklusban billentyuleutesre varakozassal select()-el)
> hanem futhat akarmi, pl. file toltes, szamolas stb...

EINTR-et kell figyelni hiba eseten. Szamolaskor nincs gond szerintem.

István
--  Istvan Marosi  --  http://www.sch.bme.hu/~marosi  --
--  Recosoft Ltd.  --  mailto:  --
+ - Re: Window uzenetek (mind) VÁLASZ  Feladó: (cikkei)

>Az elso problema:
>A futo programok azonositoit szeretnem lekerdeezni. Ehhez igazabol semmi
>otletem sincs.

Milyen azonositot? A nyitotott ablakok handle-jeit? Akkor nezz korul az
EnumWindows() kornyeken...

>A masodik:
>A programombol szeretnem lekerdezni egy masik progi altal kuldott
>uzeneteket. (pl.: ha rakattintottak a Winampban a Play  gombra, akkor azt
az
>en progim is tudja.)
>Az uzeneteket kesobb a Postmessage-val el is szeretnem kuldeni a proginak.
>[...]
>A lekerdezeshez a Getmessage-t probaltam hasznalni, de egyre inkabb azt
>hiszem, hogy nem ez a megoldas.
Ha mas alkalmazasok altal kuldott/fogadott uzeneteket akarsz monitorozni,
akkor egy un. hook-dll-t kell lterehoznod, ami beepulve a Windows
uzenet-feldolgozo soraba az osszes, a rendszerben generalodo uzenetet el
tudja kapni... Errol bovebbet a Delphi\Help\win32.hlp SetWindowsHookEx()
cimszava alatt olvashatsz.

Gabor
+ - Re: DELPHI 4 help (progfuttatas pasbol) (mind) VÁLASZ  Feladó: (cikkei)

>Hogyan lehet a .pas fajlbol egy kulso .exe-t
>elinditani?
WinExec(), ShellExecuteEx() ill. CreateProcess() - attol fugg, hogy kesobb
mit akarsz majd vele kezdeni (pl. megvarod amig lefut, esetleg uzeneteket
akarsz neki kuldeni, stb.)...

Gabor
+ - Re: timer interrupt UNIXon ? (mind) VÁLASZ  Feladó: (cikkei)

Kedves Arpi!

> Felado :  [Hungary]

> Kerdesem: van-e olyasmi unixon, mint a DOS-ban volt anno a
> timer interrupt (INT 8), tehat hogy altalam megadott
> idokozonkent lefusson egy rutin, es ez idore felfuggessze
> az eppen futo processzt, majd utana folytassa.
> 
> Eloszor a SIGALRM/alarm() parossal probalkoztam, majdnem jo,
> csak az a baj hogy utana nem egeszen jol folytatodik a
> megszakitott kod, olyan mintha kilepne egy szinttel:
> Pl.:
>   #include <stdio.h>
>   #include <signal.h>
> 
>   void sig_handler(int par){ printf("Ebreszto!\n"); }
> 
>   main(){
>   char ret[256];
>     strcpy(ret,"nem jo");
>     signal(SIGALRM,sig_handler); alarm(3);
>     printf("Waiting...\n"); gets(ret);
>     printf("ret='%s'\n",ret);
>   }
> 
> Itt eppen a gets() varakozik, mikor megjon a signal, de miutan
> a sig_handler() lefutott, nem folytatodik a gets(), hanem kilep. :(
> Annyira kilep, hogy hozza se nyul a parameterkent kapott valtozohoz.
> (az utolso printf "ret=nem jo"-t ir ki)

Jol csinaltad, csak a doksit nem olvastad el elegge alaposan. A process a 
gets-ben acsorog es varja, hogy tertenjen valami. Beut a signal, ami 
megszakitja a gets-et. Ha megnezed, mint ad vissza a gets, akkor valami 
olyasmit kell latnod, hogy a hibakod mexakitas miatt tort ki.

Tehat, ha a gets (illetve, ahogy a man ajanlja fgets) NULL-al ter vissza, 
akkor az errno-ban (#include <errno.h>) valoszinuleg EINTR (Interrupted 
function call) van. Igy meg tudod nezni, hogy mi tortent. Ha ez, akkor 
hibauzensz, ha nem NULL, akkor meg van ertelmes visszatero adat...

Nem probaltam ki, de szerintem igy muxik...

Ha nem megy, akkor szolj!

Udv From:, a megszakadt

Idot, penzt, faradsagot takarit meg, ha idot, penzt, faradsagot takarit 
meg...
+ - Re: Re: timer interrupt UNIXon ? (mind) VÁLASZ  Feladó: (cikkei)

Kedves Arpi!

On 20 Jul 99, at 14:21, Arpi wrote:

> Muxik, csak nekem nem ez kell...
> Nekem az kene hogy ne szakadjon meg.
> Ha pl. az user begepelt 3 sornyi szoveget (de meg nem nyomott entert) es
> kozben beut a mexak akkor odaveszik amit gepelt... nekem az kene hogy
> tudja folytatni utana is. Masreszt mint irtam nem csak gets-ek lesznek,
> hanem mindenfele mas is lehet, gyakorlatilag az egesz prg-t tele kene
> rakni ilyen errno==EINTR figyelesekkel, az eleg suxxx lenne. Akkor inkabb
> thread-ek, csak akkor gond van a hordozhatosaggal.

Az a gond, hogy a gets, ami egy sort var az stdin-rol, az meghiv egy kernel 
rutint, ami az interrupt altal mexakad. Hasznalj getchar-t (fgetc, getc)-t es
 
karakterenkent szedd be. Erre irnod kell egy sajat beolvaso rutint. Masreszt 
a terminalnak meg kell mondani, hogy ne kanonikusan olvasson (azaz ne \n-ig, 
hanem minden karaktert adjon vissza).

Sajnos ezt en nem tudom, hogyan kell. Tud valaki segiteni?

Udv From:, a sor vege

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