Hollosi Information eXchange /HIX/
HIX CODER 1104
Copyright (C) HIX
2001-03-02
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 Re: NetManage HTML (mind)  11 sor     (cikkei)
2 Re: A halozat gepei (mind)  51 sor     (cikkei)
3 RE:billentyuzet figyeles (mind)  15 sor     (cikkei)
4 Re: progi se taskbaron, se systemtray-en (mind)  34 sor     (cikkei)
5 Re: SQL guruk! (mind)  23 sor     (cikkei)
6 Text fajlban turkalas [long] (mind)  142 sor     (cikkei)
7 RE: SQL Guruk (mind)  18 sor     (cikkei)
8 Delphi es ActiveX komponensfejlesztes (mind)  5 sor     (cikkei)
9 primszam-teszt (mind)  19 sor     (cikkei)
10 Re:progi se taskbaron, se systemtray-en ( 15 sor ) (mind)  31 sor     (cikkei)
11 Re: primek (mind)  18 sor     (cikkei)
12 Extenderek (mind)  11 sor     (cikkei)
13 Re: Re: Nem szabad nagy text fajlban turkalni! (mind)  13 sor     (cikkei)

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

>A most elkeszult progimban a NetManage ceg HTML1 komponenset hasznaltam fel.
>A kerdesem az lenne, hogy mit kell beallitanom ahoz, hogy Delphi nelkuli
>gepen is futtathato legyen a kesz progim. Azt halottam, hogy
>regisztraltatni??? kell a NetManage komponenst az uj gepen is. Sajnos nem
>tudom azt hogyan kell.
Az onregisztraciora kepes OCX/VBX/DLL/stb. fajlokat legegyszerubben a
REGSVR32-vel lehet regisztraltatni, valahogy igy:
"regsvr32 html.ocx". A regisztralando konyvtarakat egyebkent a NetManage
komponensek helpje tartalmazza az "Installation Process" topicban.

Gabor
+ - Re: A halozat gepei (mind) VÁLASZ  Feladó: (cikkei)

>Ha valakinek volna rola informacioja, irhatna egy par szot arrol, hogy
>windows alatt hogyan lehetne lekerdezni, a halozat gepeit, pontosabban
>azok neveit.

procedure EnumServers(S: TStrings);
procedure EnumNetResource(RPTR: PNetResource);
type TNetResourceArray = array[1..100] of TNetResource;
     PNetResourceArray = ^TNetResourceArray;
var Err,I,Count: integer;
    H: THandle;
    Buf: PNetResourceArray;
    BufSize: longint;
;

Gabor
+ - RE:billentyuzet figyeles (mind) VÁLASZ  Feladó: (cikkei)

> Szuksegem volna olyan peldaprogramra (w95, bc4.5), amely megmutatja,
>hogy lehet figyelni a billentyuzetrol erkezo uzeneteket es hogy lehet
>ezeket lekezelni. Ha csak doksirol tudtok, az is jo. Elore is koszi
>minden hozzaszolast.
>
>A DDK-ban van ra mintaprogram, amely a billentyuzet ioctrl-os
>lekerdezeset mutatja be.
>En nt-re irok drivereket, es az nt DDK-ban lattam,  de ez a resz user
>szintu, tehat minden M$-on egyforma, a DDK az MSDN-rol tolthato le.
Ehhez a feladathoz nincs szukseg driver irasara, ergo a DDK sem szukseges
hozza. Nyuzer modbol egyszeruen el lehet intezni a dolgot egy globalis hook
installalasaval. Bovebbet a win32.hlp-ben ill. a MSDN-ben talalsz a
SetWindowsHookEx() fuggveny kornyeken.

Gabor
+ - Re: progi se taskbaron, se systemtray-en (mind) VÁLASZ  Feladó: (cikkei)

>Meg tudna mondani nekem valaki, hogyan lehet megcsinalni Delphi-ben vagy
>Borland C Builder 4-ben, hogy egy futo program ne latszodjon a taskbaron
>se, es a system tray-en se?
Az alkalmazasnak nem lesz ikonja a notification area-ban (ugyanis igy hivjak
azt amit te system tray nevvel illetsz), ha csak nem hozatsz te magad
(marmint az alkalmazas) explicit letre egyet, tehat ez nem gond. A
taskbarrol pedig egy, a mainform letrehozasa utan kiadott
ShowWindow(Application.Handle,SW_HIDE);-dal lehet az alkalmazast eltuntetni.
(A legegyszerubb ha a project fajlba irod be kozvetlenul a mainformhoz
tartozo Application.CreateForm()-os sor utan.)

>A lenyeg az lenne, hogy ne lehessen Alt+Tab-bal ralepni.
Ahhoz, hogy az Alt+Tab-os listaban se jelenjen meg a task, ahhoz vagy
service-nak kell lennie (illetve W9X-ek alatt a
RegisterServiceProcess()-szel inditas utan pszeudo-service-sza kell
"alakitani"), vagy a toolwindow attributummal kell rendelkezni. Ezt valahogy
igy lehet elerni:

type TForm1 = class(TForm)
 ....
    procedure CreateParams(var Params: TCreateParams); override;
 ....
end;

procedure TForm1.CreateParams(var Params: TCreateParams);
;

Gabor
+ - Re: SQL guruk! (mind) VÁLASZ  Feladó: (cikkei)

>Egy nagy tablaban kellen megneznem, hogy van-e duplikacio bizonyos
>mezok teren.
>A tabal merete kb. 15 millio rekord, az egy adagban vizsgalando tetelek
>szama kb. 200 rekord. (T1.terul = x szures eredmenyekent)
>En igy csinaltam:
>
>Select ID from Tabla T1
> where T1.terul = x
>  and exists (select ID from Tabla T2
>         where T2.a = T1.a and T2.b =T1.b
>            and T1.ID <> T2.ID)
>
>van ennel jobb, gyorsabb megoldas?
Bar nem probaltam ki, de beagyazott select-nel minden valoszinuseg szerint
gyorsabb, ha az egyezosegre vizsgalando mezok alapjan "group by"-olsz, es
egy egyszeruen megnezed, hogy az egyedi azonositok count()-ja nagyobb -e
mint 1, valahogy igy:

select ID from Table
  group by a, b
  having count(ID) >= 2

Gabor
+ - Text fajlban turkalas [long] (mind) VÁLASZ  Feladó: (cikkei)

:
Re: Nem szabad nagy text fajlban turkalni!
Tue Feb 27 08:33:17 CET 2001 CODER #1102:

 ....
>Kérlek ne bősz hangnemmel olvasd a levelem...
DEEE ;))))

>A probléma ott kezdődik a mai programozó világgal, hogy túl könnyedén
>alkotható valami futni látszó dolog ezekkel az automatikus program-generátor
>eszközökkel, ...
No, egyenlőre semmi CASE eszközről szó nincs, csak jó öreg relációs
adatbáziskezelőkről.

>Bevetésük mérlegelésekor nem egyetlen tábla mérete a
>szempont, hiszen egy adatbáziskezelőnek ugyanúgy memóriára van szüksége, és
>ugyanolyan megoldásokat fog használni mint te, ha jó programot írsz.

Hmmm... hát nem hinném, hogy a többség egy abszolút profi, aki képes
kielemezni , és nagyon jó hatékonysággal lekezelni a néhány tucat fajta
join-t, szűrést, ind exelést, beszúrást, törlést implementálni, mindezt
több szempontú, fába épített, i/o-ra kihegyezett index fájl kezeléssel...
és ez sajnos már minimális méretű problémá knál is szóba kerül - pl egy
szimpla web-es adatkarbantartás is legalább fél tucat t áblánál kezdődik,
ha tiszta, átgondolt adatbázis modellről van szó.

>Sokkal többet nyom a latban az adatbázis komplexsége, a relációk bonyolultsága
,
>amikor azt lehet mondani, igen ezzel nem érdemes "kézzel" foglalkozni,
>csinálja meg egy database manager, hiszen ezért írták. Szerintem egy
>egyszerű, néhány táblás adatbázist sokkal ésszerűbb saját magadnak kezelni,
>mert egy adatbáziskezelő bevonása feleslegesen hízlalja és lassítja a
>dolgot, nem beszélve néhány felesleges réteg, egy fekete doboz (még ha oly
>megbízható is) jelenlétéről ami a rendszer integritásának nem tesz jót.
Ezt mondom én is.

>Hangsúlyozom, tapasztalat szükségeltetik hozzá, nem kicsi, ebben
>egyetértünk.

A tapasztalat egy igen drága jószág, és ha lehet, innen térjünk át a
költség al apú vizsgálatra.

>Van néhány ilyen saját "adatbázis kezelőm" régről, egyszerűbb problémák
>esetére, és nem mondanám, hogy "iszonyatos rossz hatásfokkal" bírnak.
>Nem eresztgetek rá semmire quicksort-ot, mert inkább megírom. És az gyors.
>De tényleg. 19 éve programozok, ebből jó sokat németországban, automatizálásba
n,
>ahol leginkább microsecundomokért, vagy egy-egy bit-ért folyik a harc. Igaz ez
 inkább
>microcontroller környezet, de azért akad PC program is bőven. Ha lamer
>lennék - ahogy írtad - elég valószínű, hogy börtönből írnám ezt az
>E-mail-t...

Ok, lamer visszavonva, de egy alaptételt soha nem lehet elégszer kimondani:

"a megoldás költségébe bele kell számolni az optimalizálás költségét is".

Namármost a legtöbb helyen bizony a rendkívül költséges programozói erőforrás
a döntő tényező, tetszik, vagy nem tetszik, de így van. Amiért Te billentyűt
ragadtál, azért lehet, mert nálad a végső megoldás értéke rendkívüli módon
függ a teljesítménytől - az átlagos helyen azonban nem így van: az optimum
itt sokkal inkább a "10-szer gyorsabb programozás, 25%-kal lassabb program"
szemlélet alapján lesz meghatározva. Senkit nem érdekel, hogy 2 hónappal
később egy kicsivel gyorsabb programot teszel le az asztalra, ami még további
fél évig el-el szállogat - nekik sokkal inkább egy MEGBÍZHATÓ rendszer kell -
nem kifinomult.

Tehát:
- gondos tervezés (elméleti alapok!)
- minél magasabb szintű, letesztelt (vagyis ismert hibájú) eszközöket kell
  alkalmazni
- ahol szűk keresztmetszet van, ott használni a csúnyább, de hatékonyabb
  eszközöket

>...A lényeg - és ezzel a gondolattal kezdtem a levelet - a
>programozás elsajátítása. A Hix-es srácok többsége most tanul programozni.
>Csak nézz körül, a bankokban, boltokban, gyógyszertárakban, hivatalokban,
>orvosi rendelőkben, ahol sok (de nem minden) esetben egy "adatbázis-zseni"
>rendszere fut. TISZTELET A KIVÉTELNEK!!! A legtöbbel alapvető gondok vannak,
>mert nem lehet így elsajátítani egy megfelelő látásmódot, amivel egy összetett

>egész rendszert el tud képzelni, meg tud tervezni. Ez nem programozás,
>hanem gányolás, mert ezek a delphi, meg CAVO, meg Foxpro, stb.. sz*rok
>nem tanítanak meg rá, hogyan kell gondolkodni. Nem lehet úgy KEZDENI,
>hogy mindjárt PII-es proci, meg 128MB RAM áll a rendelkezésükre, és
>alapvető "tudniillik" dolgokat elintéz helyettünk a delphi. Szerintem egy
>adatbázis kezelőt akkor szabad használni, ha érted, mit csinál, hogyan
>működik, és elméletben meg tudnál egyet írni.
>Ha mindenki a megírt automata black box-okat használja, ki fog végül programoz
ni???

Bocs, de butaság - miért kellene tudni autót terveznie egy szervizes
szakembern ek? Ha rossz is a hasonlat, a lényeg: az adatbáziskezelők
magasszintű eszközök, ame lyek évtizedek óta bizonyították a
hasznosságukat.

"A fekete dobozokat nem szabad feltörni, amíg jól működnek."

Nem kell mindent tudni, csak jól használni a rendelkezésre álló
eszközöket! Én jobban megbecsülök egy ácsot, aki határidőre felépíti a
tetőmet, mint egy tudóst, aki minden tetőn ható erőt kiszámít, de
gyakorlatban nem használható semmire a tudá sa. Vagyis semmi kivetnivaló
nincs a jó Delphi programozóban, ha elég hatékony leké rdező programot
csinál. A magasszintű eszköz nem hordozza magában azt, hogy rosszabb
program születik - azt bizony a programozó trehánysága hozza. Sőt,
általában üzembiztosabb program az eredmény (lásd C - C++). Lehet, hogy az
a bajod, hogy úgymond boldog-boldogtalan képes összedrótozni egy
nyilvántartó programot, és nem marad meg a szakma olyan
arisztokratikusnak, titokzatosnak, mint volt régebben? ;)

 ....
>Én úgy gondolom, ez a megfelelő idő - mikor még nem munka, csak tanulás,
>szórakozás a programozás - arra, hogy megtanuljon az ember ilyesmit, mint
>pl. ez textfile-os probléma. Na igen, nem kéne mindjárt 400MB-al kezdeni.
>:))
Ok, én is magamtól szívtam fel a tudást, ezer műproblémán keresztül. Itt
jöttem rá a "megfelelő eszközt a megfelelő feladatra" elvre - miután 26 féle
rendező algoritmust lekódoltam és eldobtam. Éles probléma és tanulás - teljesen

más megközelítést kíván.

>Egy ellenpélda: Egy nagyon jó munkája van most a cégemnek ahol egy
>Internetes adatbázist kell kezelni Web felületről. Az ügyfélnek már régen me
>gvan a szolgáltatója, nem akar váltani. A szolgáltató csak Perl script-eket
>enged futtatni. No MySQL!!! Na most mit csinálnék, ha lamer lennék?
>Visszaadnám a munkát. Az egész adatbázis 8-10 tábla 2000-4000 record-dal, és
>igazán egyszerű relációkkal. Megcsináltam Perl-ben az egészet, igen rövid
>idő alatt.
Csak nem Elender, akik webhelyén éppen most csináltam egy Perl-es
adatkezelést? ;(
Csak azt tudom mondani: nem ideális megoldás, gányolás. Mi van, ha a
megrendelő holnap egy másik típusú JOIN-t akar? egy nap szenvedés?

>A levelemmel nem bántani akartalak, kérlek ne értsd félre, csak egy másik
>aspektust szerettem volna megmutatni.
No porblem, a következtetés ugyanaz: 1-2 táblánál többnél relációs
adatbáziskezelő az adekvát eszköz.

//bocs a hosszúért...
-- 
Józsi

+ - RE: SQL Guruk (mind) VÁLASZ  Feladó: (cikkei)

Hi !

1. az Exist -t es legfokeppen a NOT EXIST -t keruld,implicit descartes
szorzatot eredmenyezhet.
ezt hasznald ( ha jol ertettem a select-t)

            select id
              from gyerek sz
              where sz.terul = x
	minus
              select id
                from szulo l
                where sz.terul = l.terul
                    and sz.a = l.a
                    and sz.b = l.b


McCore
+ - Delphi es ActiveX komponensfejlesztes (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!
A topikban levo temakorben keresek mindenfele dokumentaciot, elsosorban
nem peldakomponensek erdekelnek, hanem reszletesebb dokumentaciok. Az
sem lenne rossz, ha magyar nyelven lenne, de ez nem szukseges. Koszonom,
Szabolcs
+ - primszam-teszt (mind) VÁLASZ  Feladó: (cikkei)

kedves Coderek,
mindenkinek koszonom a tippet a primszam-teszteleshez.
Rengeteg levelet kaptam maganban is, es ide is.
Igy megoldodik a dolog, a kovetkezo modszert fogom hasznalni,
amelyben
tobb otletet is felhasznaltam:

1.tarolom a primeket 1-65535-ig.
2.ha a keresett szam <65536, akkor megnezem benne van-e a tombben.
3.ha a szam>65536 es (szam mod 6) nem 1 vagy 5, akkor biztos nem
prim.
4.ha a szam >65536, de <(65536)^2 akkor megprobalom az oszthatosagot
a tomb elemeivel, egeszen a szam negyzetgyokeig.
ha nem oszthato egyik primmel sem, akkor o maga prim.
Igy egeszen 2^32-ig tudok ellenorizni viszonylag gyorsan, es 2^16-ig
meg gyorsabban.
Megegyszer koszonom mindenkinek a segitseget,
udvozlettel:
Kozma László
+ - Re:progi se taskbaron, se systemtray-en ( 15 sor ) (mind) VÁLASZ  Feladó: (cikkei)

Csao,

> Meg tudna mondani nekem valaki, hogyan lehet megcsinalni Delphi-ben vagy
> Borland C Builder 4-ben, hogy egy futo program ne latszodjon a taskbaron
> se, es a system tray-en se? A lenyeg az lenne, hogy ne lehessen
> Alt+Tab-bal ralepni.
Kulonben mihez kell?????
Ugye nem virus meg hasonlo ????????

Te a RegisterServiceProcess-t keresed. Nem dokumentalt! :)
Ez egy exportja a Kernel32.dll-nek. Be kell Loadlibrary-zni ha nem
hasznalod  a progidban. Majd getprocaddress a cimet es mar hivatod is.

Deklaracio:
??? RegisterServiceProcess(DWORD hwnd, DWORD hide);
nem tudom mi a visszateresi erteke :( de gondolom BOOL

hwnd  ha hwnd = 0 az ezt a fgv-t hivo process-t jelenti.

hide ha 1 akkor elrejt
     ha 0 akkor elohoz.

Van hozza ASM demo is.
Aki keri az irjon privatba.

> Toltsed le az SDK-at es nezd meg a service programozast, mert ahogy
> ertelek Neked az kell .
Ez sem utolso dolog.


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

Eloszor is, hany primrol van szo ??? Mennyi mem van, es mennyi ido ??
Ezektol fuggg a legjobb algoritmus. Nekem az eddigi leggyorsabb
algoritmusom igy nezett ki :
-Gyokig  neztem az oszthatosagot
-Nem hasznaltam az sqrt utasitast, mert feleslegesen lassu
-taroltam a primszamokat es csak azokkal osztottam -> REngeteg mem kell
-A kettovel es 5-tel oszthato szamokat eleve kihagytam A 7 es a tobbi
	rengeteg bonuszszenvedes, es csak 1-3 szazalek javulas, szoval
	tovabb nem eri meg.

Ha van eleg mem, akkor kell egy tablazat, es beletenni minden szamhoz hogy
prim-e.
Ha nincs mem, de ido van, akkor ellenorzofuggveny, tarolas nelkul.
HA van keves mem, es nincs tul sok ido, akkor tarolni kell az elso n
primet, es a tesztfuggveny ezt hasznalja, ha elfogytak akkor paratlan
szamokkal nyomul tovabb.

Eggor.
+ - Extenderek (mind) VÁLASZ  Feladó: (cikkei)

Hi all!
Tudna valaki valamilyen infot nyujtani az extenderekrol alatalaban
(Dos4Gw meg ilyesmi) ?
Csak annyit tudok rola, hogy megy win alol, meg vedett modban.
Azert erdekelne, mert a progi amit irok, linearisan kezeli a
vidmemet, de FlatRealban, az meg nem csipi a windowst. Egyeb megoldas
is erdekelne.
(Ha nem voltam vilagos: Az kell hogy a 4 Mb vidmemet LFB-ben elerjem
Windows alol)

[the Catalisat]
+ - Re: Re: Nem szabad nagy text fajlban turkalni! (mind) VÁLASZ  Feladó: (cikkei)

To : 

Hat ha a programozas oromeert csinalja, akkor irja meg:) De ha mondjuk egy
oraj a van ra, mint nekem lenne egy ilyen kaliberu feladatra es ezert
fizetik, akkor megnezem:) Ha csak nem interkontinentalis ballisztikus
raketairanyitashoz kell :) Magyarul gazdasagilag altalaban nem eri meg
specialis program irasaval tolteni ezt az idot. Es a fenntartassal is
lesznek gondok, nekem is az agyamon van most egy legacy adatbazis kezelo,
az iroja evekkel ezelott elhagyta a ceget, dokume ntacio nincs, tehat
aprankent ujra lesz irva. Tanulsag : ne talald fel ujra a k ereket, mert
evvel sok ember agyara fogsz menni es sok penzbe fogsz kerulni. Pali

(webes bekuldes, a bekuldo gepe: 62.232.84.215)

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