Hollosi Information eXchange /HIX/
HIX CODER 1102
Copyright (C) HIX
2001-02-28
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 Re: Nagy text fajlban turkalni (#1099) (mind)  19 sor     (cikkei)
2 Adatbanyaszatrol (mind)  7 sor     (cikkei)
3 Nem szabad nagy text fajlban turkalni! (mind)  64 sor     (cikkei)
4 A halozat gepei (mind)  18 sor     (cikkei)
5 billentyuzet figyeles (mind)  8 sor     (cikkei)
6 progi se taskbaron, se systemtray-en (mind)  13 sor     (cikkei)
7 C++ too many exe files (mind)  22 sor     (cikkei)
8 gyors rendezesi algoritmus (mind)  23 sor     (cikkei)
9 CBuilder 4, TListBox ScrollBar (mind)  11 sor     (cikkei)
10 primszam teszteles (mind)  19 sor     (cikkei)
11 SQL guruk! (mind)  20 sor     (cikkei)
12 SQL Guruk 2 (mind)  31 sor     (cikkei)
13 Re: Nem szabad nagy text fajlban turkalni! (mind)  93 sor     (cikkei)
14 RE: VB 6 - Access 2000 (mind)  12 sor     (cikkei)

+ - Re: Nagy text fajlban turkalni (#1099) (mind) VÁLASZ  Feladó: (cikkei)

Hi Coders!

 irta:
> Robi ( nem Gábor :)) )
Bocsi. Neha osszeszavakat a keverem.

Hi Robi!

> Alapul veve a Perl, es az Awk kepessegeit,
> irnod kell egy split fuggvenyt.
Koszi, asszem eszt teszem.

> > Adatbaziskezelot "nem" szeretnek hasznalni.
> Na ezt nagyon helyesen teszed... :))
Haat, a kimenet amugy az ID (+ a sor), ezert
gondoltam, hogy nem kell (sokkal tobb munka
lenne vele).

udv.: XiX/PsychoMix
+ - Adatbanyaszatrol (mind) VÁLASZ  Feladó: (cikkei)

Hi Coders!

Adatbanyaszatrol ki tudna egy kis elohanyast
tartani. Mert az is erdekes dolgo am.
Foleg az erdekelne, miert tud "real-time" lenni.

udv.: XiX/PsychoMix
+ - Nem szabad nagy text fajlban turkalni! (mind) VÁLASZ  Feladó: (cikkei)

:
> > Hi Coders!
>
> Hi XiX!
>
> XiX:
> > Van egy-ket text fajlom (78MB, 55MB, 23MB,
> >  ..... ossszesen 490MB). Sovegesen tartalmaz
> ...
> > Milyen modon lehet sorbarendezni pl. a
> > 4. mezonevre? Milyen modon (irjak prgt?)
> > lehet levalogatast csinalni.
>
> Erre mondjuk Perl, vagy Awk nyelvek kivállóan alkalmasak... kb 5-10 sorbol
> el lehet intezni.
> ..
> Rovidebben:
> -mezokre bontas
> -kulcsmezo rendezese
> -tobbi mezo utanarendezese
> -aztanlehet levalogatni.
>
> Ennel kicsit elegansabb es karbantarthatobb lenne, ha hasonlo modon
> indexfile-okat csinalnal, es az eredeti text file-t ugy hagynad.
>
> > Adatbaziskezelot "nem" szeretnek hasznalni.
> Na ezt nagyon helyesen teszed... :))
>

Hello!

Röviden: ne!
Ne írjátok meg azt a progit iszonyatos rossz hatékonysággal,
amit programozók garmadája relációs adatbáziskezelő néven már megcsinált!
Pont erre találták ki, hogy amit te kézzel összedrótozol, azt teljesen általáno
san,
hibamentese(bbe)n és gyorsabban végezze el.

Komolyan gondoltad, hogy 490 MB adatot csak úgy "beolvasunk a memóriába"?
Változó rekordhosszra kihegyezett szövegfeldolgozó eszközökkel?
"Ráeresztünk egy quicksortot" mert az gyors? Akkor is gyors, ha állandóan swapp
-elni
kell az adatok eléréséhez?
A valamelyest hatékony megoldáshoz legalábbis egy többmenetes összefésülő
rendezést kell megírni.
De ez persze csak 1 szempontú keresésre jó - vagy Te minden kereséskor újra
akarod rendezni az egész adathalmazt? brrr...
Persze lehet csinálni index fájlokat, fix rekord hosszal, kiegyensúlyozott biná
ris fás
indexeléssel - akkor ugye megint ott vagyunk hogy minek kell újra megírni egy a
datbáziskezelőt?

Akár free adatbázis eszközökkel (mysql, PostgresSQL, InterBase, nota bene DBF+D
elphi)
is 1 délután alatt meg lehet csinálni mindenféle szempontú rugalmas lekérdezést
 . Akkor meg
minek kell szenvedni?

Teljesen igazad van 10 soros játék adatbázisnál, nade 1 millió rekorddal?

/Senkit nem akartam megsérteni, csak ez a lamerség már bosszantott...bocs.../
-- 
Józsi

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

Hello !

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

Azerrt nem irok konkret nyelvet, mert inkabb az erdekel milyen API
fuggvenyekkel lehetne ezt megcsinalni, es milyen modon.
(nem feltetlen TCP/IP halozatrol van szo !!!)
Hogy meg konkretabb legyek, gyakorlatilag olyan listara lenne
szuksegem, mint ami a "halozatok ikon" alatt megjelenik.

A megoldas johet Delphiben, C-ben vagy akar PowerBuilderben is.

-- 
Udv:
    Csiszar L.                        mailto:
    www.stadium.hu/szt
+ - billentyuzet figyeles (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok...

 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.

az atika...
+ - progi se taskbaron, se systemtray-en (mind) VÁLASZ  Feladó: (cikkei)

Hello!


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.

EIK && Udv,

		Hunter				-[HE 1.15beta6]-

ui. cc maganba is, legyszi!
+ - C++ too many exe files (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!

Ujabban a c++ fordito azzal jon, hogy azert nem tud forditani, mert
tul sok az *.exe file. En meg ezt nem ertem, mivel a konyvtaraban
csak a fordito exe fajljai vannak.

A kovetkezo progival vacakol:

#include <iostream.h>

int main()
{
 cout<<"Hello World!";
 return 0;
}

Mar ennel az alap proginal is vacakol. Mit rontottam el???
Gondolom valami itt a progiban nem stimmel...
Vagy megsem???
a progi neve: firstc++.cpp

Tamas
+ - gyors rendezesi algoritmus (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!

Adott a feladat, hogy sok, akar 1500 fajlnevet abc sorrendbe kell
rendeznem. Az most lenyegtelen, hogy kiterjesztes vagy nev szerint (mert
tulajdonkepp mindketto szerint szokas rendezni...). A kiterjesztes
szerinti rendezest meg is irtam, kozvetlen kivalasztas modszerevel, am
rendkivul lassu...... 460 koruli fajlt egy 266 MMX-en erezheto ideig
rendez. (A Norton es a Volkov pillanat alatt rendezi!) Nem a nyelvvel
van a baj, Borland C 3.1, a platform DOS, szoval semmi Win ami elvenne
az eroforrasokat. Igazabol nem is csodalkozom, mert ez a rendezesi
modszer ennyit tud. Azonban hallottam arrol, hogy van valami quicksort
nevu eljaras, amivel nagyon gyorsan lehet rendezni, es gyanitom, hogy a
norton/volkov commander, dn stb. is ezt hasznalja. Engem ez az eljaras
erdekel, igy tehat aki tud, kerem segitsen! Nagyon orulnek egy ertheto
leirasnak, magyarul/angolul, de johet link is, csak az nem annyira jo.

Koszi

Udv
-- 
 Tamas Selmeci / TOR][UM
mailto:
    F0 0F C7 C8 rulez!
+ - CBuilder 4, TListBox ScrollBar (mind) VÁLASZ  Feladó: (cikkei)

Szevasz/tok!

CBuilder 4 alatt a kovetkezo problemam van: a TListBox-nak a ScrollBar-jat
szeretnem eltuntetni. Egy masik esetben pedig szeretnem a ScrollBar
vezerleset elvenni a TListBox-tol es en vezerelnem.
Nem talalom, hogyan ferhetnek a TListBox ScrollBar-jahoz.

Valaszotokat elore is koszoni

(::-{)> Torma Istva'n, TOR, 
A valaszokat ide a listara kerem, mert olvasom es mert mast is erdekelhet
+ - primszam teszteles (mind) VÁLASZ  Feladó: (cikkei)

mi a velemenyetek, milyen algoritmust erdemes hasznalni annak
eldontesere, hogy egy szam prim-e, vagy nem.
A lenyeg az, hogy nem tul nagy szamokrol van szo,
de rengetegszer elofordul egy-egy szam ellenorzese.
En a kovetkezo nagyon primitiv algoritmust hasznalom:

function primtest(p:word):boolean;
;

azt tudom, hogy ugy lehetne finomitani, hogy 2-n kivul csak paratlan
szamokkal ellenorzom az oszthatosagot, de maskent hogy lehetne
lenyegesen javitani?
elore is kosz,
udv.:Kozma László
+ - SQL guruk! (mind) VÁLASZ  Feladó: (cikkei)

Hali!

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?
(Oracle 8as motor PL/SQL ami belfer :-) )
Ez az egesz raadasul egy kurzor, mert ezeket az IDket hibanaploba kell
irnom...

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

Hali!
Az elozo levelemben irt select helyett van egy, ami gyorsabb, legalbbis
a teszt tablankon, ahol kb 5000 rekord van
Select T1.ID from Tabla T1, Tabla T2
where T1.terul = x
        and T2.a = T1.a and T2.b =T1.b
        and T1.ID <> T2.ID

ami kacifantosabb es meg nem talaltam mas megoldast, viszont lassu mont dog...
Ossze kell szedni azokat a rekordokat, akinek nincs szuloje (vagy gyereke)
azaz: ( a kapcsolatot terul,a,b adja meg, lehet gyerekben tobb is ilyen...)

            select id
              from gyerek sz
              where sz.terul = x
              and not exists
              (select id
                from szulo l
                where sz.terul = l.terul
                    and sz.a = l.a
                    and sz.b = l.b
              )
             group by sz.terul, sz.a, sz.b; -- mert akkor mind rossz, de nekem
eleg egy is a kupacbol)

Ezt lehet valahogy maskent csinalni? Mert ezzel a not exists-el irto lassu... :
-((
(15millio rekordbol megkeresni ezt amire szukseg van, kicsit sokaig tart meg in
dexekkel is...)

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

> Hello!

Hello!

Nem vagyok flame-elős alkat, de most muszály... :))
(Kérlek ne bősz hangnemmel olvasd a levelem. Higgadt, mosolygós arccal írom,
csak ez E-mail-ben nem nagyon jön ki)

> Röviden: ne!

Röviden: de!
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, melyek egyike a mindenféle adatbáziskezelő kütyük családja. És
itt nem a
komolyakra, mint Oracle és tsai gondolok. Igen. Igazad van, ezek nagyon
hasznos, munkát megkönnyítő eszközök. De először is, ahogy írtad
általánosságuk az egyik legnagyobb erejük, és emelett a legnagyobb gyengéjük
is. Ettől nem lesznek gyorsabbak! Sőt! De ez nem is elvárható az
általánosságuk miatt. (Na jó egy szakköri programnál nyilván gyorsabbak, de
nem erről van szó) 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. 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.
Hangsúlyozom, tapasztalat szükségeltetik hozzá, nem kicsi, ebben
egyetértünk.

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ásban, 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...

Egy szó mint száz, teljesen egyetértek veled sok részletben, míg másokban
ugyanúgy nem. 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 programozni??? Ez nem csak DB-kre igaz. A mai programozás sok
területén fenáll ez a probléma. Hogy csak egyet említsek: Windows.
Programozás tanártól(!!!) hallottam azt, hogy a Windows egy
objektum-orientált operációs rendszer. Ennek ugyanaz az oka, hogy a tisztelt
tanárúr csak ilyen OOP-s fejlesztőeszközöket látott Winfos-ra, soha nem írt
meg egyetlen alkalmazást sem "kézzel", fogalma sincsen a Windows
felépítéséről, mechanizmusáról. De tanítja. (vagy pont ezért, ahogy Woody
Allen mondta? :)) )
É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.
:))

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.

A levelemmel nem bántani akartalak, kérlek ne értsd félre, csak egy másik
aspektust szerettem volna megmutatni.

Minden jót, és szívesen veszem a válaszodat, véleményedet:

Robi

UI: bocs, tudom, hogy nagyon hosszú volt, de erről könyveket lehetne írni...
---
E-mail: 
ICQ: 96586562
Egyszer volt, hol nem volt, az operacios rendszeren is tul...
---
+ - RE: VB 6 - Access 2000 (mind) VÁLASZ  Feladó: (cikkei)

>Felado :  [Hungary]
> Temakor: VB 6 - Access 2000 ( 14 sor )
>Adva van Win2000, VB6 es office 2000.
>Atkonvertalok egy access97-es adatbazist 2000-esse, es eztan nem tudom
>megnyitni tobbet a VB programombol. (3000-akarhanyas hiba: rossz adatbazis
>formatum)
>Hogy tudom frissiteni a DAO-t? 3.6-os van bejelolve a referencies-ben.
Nincs koze a VB-hez. Mar egyszer megirtam ide, hogy a DAO version-t
be kell allitani, ha 2000-es formatumot (is) akar kezelni az ember.
Azt tippelnem, hogy hiaba van installalva a 3.6, megis a 3.5-ot hasznalja.
Az MSDN-ben keress (sokaig fog tartani) MFC-s pelda pl. a technote 236991.
--Udv:szm

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