Hollosi Information eXchange /HIX/
HIX CODER 499
Copyright (C) HIX
1999-06-23
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 Visual C: Too many files open (mind)  28 sor     (cikkei)
2 offtopic, Atex jelentkezz ! (mind)  17 sor     (cikkei)
3 printerport programozas (mind)  16 sor     (cikkei)
4 RE: mit rontottam el mar megint? (mind)  25 sor     (cikkei)
5 Re: getch() unix alatt ncurses/svgalib nelkul? (mind)  61 sor     (cikkei)
6 Re: karakteres terminal I/O (mind)  82 sor     (cikkei)
7 Re: getch() unix alatt ncurses/svgalib nelkul? (mind)  56 sor     (cikkei)
8 Re: getch() unix alatt ncurses/svgalib nelkul? (mind)  11 sor     (cikkei)
9 kereses (mind)  9 sor     (cikkei)
10 Pascal->C (mind)  16 sor     (cikkei)
11 Lamer vagyok (mind)  21 sor     (cikkei)
12 Pascal to C (mind)  34 sor     (cikkei)
13 Fw: DAO & VC (mind)  22 sor     (cikkei)
14 Re: *** HIX CODER *** #456 (mind)  10 sor     (cikkei)
15 C++ HIBA!!!!!!!!!! (mind)  46 sor     (cikkei)
16 Hang manipulallo+2 mp3 lejatszasa (mind)  19 sor     (cikkei)
17 osszehasonlito program (mind)  14 sor     (cikkei)

+ - Visual C: Too many files open (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!

MS Visual C++ 1.52-ben irok egy DLL-t es a kovetkezo hibauzenetet kaptam

fajlnyitaskor (_open): "Too many files open."
A helpben ratalaltam ket konstansra, amik befojasoljak az egyidoben
megnyithato
fajlok szamat:
> -----------------------------------------
Constant FOPEN_MAX, _SYS_OPEN
Include <stdio.h>
This is the maximum number of files that can be opened simultaneously.
FOPEN_MAX is the ANSI-compatible name. _SYS_OPEN is maintained
for compatibility.
> -----------------------------------------
Ezek az stdio.h-ban igy vannak definialva:
#define FOPEN_MAX 18
#define _SYS_OPEN 20
Valoban ennyi fajl megnyitasa utan kapom a hibauzenetet, de
hogyan tudnam ezt a hatart tullepni? En ugy gondolom, hogy
egy MS Visual C-tol elvarhato lenne, hogy 18-20 fajlnal tobbet is
kezelni tudjon (pl. az operacios rendszer korlataihoz igazodva).
Hogyan tudnam ezt elerni (pl a konstansok atirasaval es valamifele
LIB-ek
ujraforditasaval?)?
Kerem a C-ben nalam jartasabbak segitsenek!

Udv: Szabolcs
+ - offtopic, Atex jelentkezz ! (mind) VÁLASZ  Feladó: (cikkei)

offtopic

Szia Atex !

Szeretnek egy levelcimet kerni, amirol nem pattan vissza a levelem.

Probaltam az






cimeket, total eredmenytelenul.

offtopic
-- 
+ - printerport programozas (mind) VÁLASZ  Feladó: (cikkei)

>Egy kérdésem lenne: miért lehet az, hogy egy gépben van egy alaplapra
>integrált Lpt port (LPT1),és egy hercules kártya Lpt portja (LPT2),
>és amikor egy karaktert irok ki az LPT1-re,majd utána az LPT2-re,
>kb 30mp alatt kapom vissza a vezérlést.A "programozás" assembly nyelven
>van, kipróbáltam Dos és Win98 alatt is! Ha valaki tud, segitsen!!

Hogyan tortenik a kiiras? Allomany van megnyitva vagy BIOS funkciot
hasznalsz vagy port-iras tortenik?

Van nyomtato a portokon?

Ha nincs rajta nyomtato es allomany vagy BIOS-hivassal irod a karaktert,
akkor a BIOS-funkcio eleg sok ideig var, amig visszater, hogy nem
sikerult kiirni.

Veres Sandor
+ - RE: mit rontottam el mar megint? (mind) VÁLASZ  Feladó: (cikkei)

Hali!

>Van ez a kodreszlet:

>      if (tenyhossz != NULL)
>    {
>        strcat (temp,szovegnek);
>        fputs (temp, destinat);
>      } else
>      {
>        *(temp + strlen (temp) -1) = '\n';
>        *(temp + strlen (temp)) = '\0';
>        fputs (temp, destinat);
>      }

>Ha nyomkovetem, akkor az strcat-es sor utan ATUGRIK
>az fputs-es sorra, megpedig az else agban!

>Mit rontottam el?

Semmit. A fuggvenyhivast a fordito nem fogja ketszer generalni. A ket
"fputs(...)" teljesen ugyanaz. Nyilvan egy helyen talalhato meg a
kodban. Ezert latod Debug-kor, hogy "oda lep". Optimalizalj speed-re es
akkor nem lesz ilyen bibi. Plusz termeszetesen a forras sorszamokat az
objban menteni kell.
+ - Re: getch() unix alatt ncurses/svgalib nelkul? (mind) VÁLASZ  Feladó: (cikkei)

On Fri, Jun 18, 1999 at 10:00:50AM +0000,  wrote:
> Az erdekelne, hogy hogyan lehet a getch() funkciot megoldani
> UNIX rendszereken (linux,irix,aix kene) C-ben ugy, hogy nem hasznalom
> se a curses/ncurses libet,

Kar, mert ezeket pont emiatt talaltak ki es portoltak
mindenfele'.

> Tehat ugy kene karaktert beolvasni hogy azonnal megkapjam az eredmenyt,
> ne csak az enter leutesekor. Meg jobb lenne ha nem is varakozna, csak
> visszaadna hogy nincs billentyu lenyomva (mint a keypressed pascalban).

En egy select()-tcsetattr() kombinacioval probalkoznek: a
tgsetattr() beallitja a terminalt, hogy mikor egy billentyut
leutnek, azonnal terjen vissza a read(), a select()-tel pedig
egyszeruen azt nezzuk, hogy lehet-e mar olvasni.

#include <stdio.h>
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>
#include <termios.h>

int main(void)
{
	int retval;
	fd_set rfds;
	struct timeval tv;
	struct termios termios_p;

	tcgetattr(STDIN_FILENO, &termios_p);
	termios_p.c_lflag &= ~ICANON;
	tcsetattr(STDIN_FILENO, TCSANOW, &termios_p);

	/* Watch stdin (fd 0) to see when it has input. */
	FD_ZERO(&rfds);
	FD_SET(0, &rfds);
	tv.tv_sec = 0;
	tv.tv_usec = 0;

	retval = select(1, &rfds, NULL, NULL, &tv);
	/* Don't rely on the value of tv now! */

	if (retval)
		printf("Key pressed.\n");
	/* FD_ISSET(0, &rfds) will be true. */
	else
		printf("Key not pressed.\n");

	return 0;
}

A mellekhatasa ennek a modszernek, hogy a bepufferelt, tehat a
select() meghivasa elott beolvasott karakterekre is figyel, ezt
nem tudom hogyan lehetne kikuszobolni.

:-* :
_tgz

-- 
Premature optimization is the root of all evil - Knuth
+ - Re: karakteres terminal I/O (mind) VÁLASZ  Feladó: (cikkei)

A kutya az az
info libc
-ben van eltemetve :-)

Itt van egy példa:

   Here is an example program that shows how you can set up a terminal
device to read single characters in noncanonical input mode, without
echo.

     #include <unistd.h>
     #include <stdio.h>
     #include <stdlib.h>
     #include <termios.h>
     
     /* Use this variable to remember original terminal attributes. */
     
     struct termios saved_attributes;
     
     void
     reset_input_mode (void)
     {
       tcsetattr (STDIN_FILENO, TCSANOW, &saved_attributes);
     }
     
     void
     set_input_mode (void)
     {
       struct termios tattr;
       char *name;
     
       /* Make sure stdin is a terminal. */
       if (!isatty (STDIN_FILENO))
         {
           fprintf (stderr, "Not a terminal.\n");
           exit (EXIT_FAILURE);
         }
     
       /* Save the terminal attributes so we can restore them later. */
       tcgetattr (STDIN_FILENO, &saved_attributes);
       atexit (reset_input_mode);
     /* Set the funny terminal modes. */
       tcgetattr (STDIN_FILENO, &tattr);
       tattr.c_lflag &= ~(ICANON|ECHO); /* Clear ICANON and ECHO. */
       tattr.c_cc[VMIN] = 1;
       tattr.c_cc[VTIME] = 0;
       tcsetattr (STDIN_FILENO, TCSAFLUSH, &tattr);
     }
     
     int
     main (void)
     {
       char c;
     
       set_input_mode ();
     
       while (1)
         {
           read (STDIN_FILENO, &c, 1);
           if (c == '\004')          /* `C-d' */
             break;
           else
             putchar (c);
         }
     
       return EXIT_SUCCESS;
     }

   This program is careful to restore the original terminal modes before
exiting or terminating with a signal.  It uses the `atexit' function
(*note Cleanups on Exit::.) to make sure this is done by `exit'.

   The shell is supposed to take care of resetting the terminal modes
when a process is stopped or continued; see *Note Job Control::.  But
some existing shells do not actually do this, so you may wish to
establish handlers for job control signals that reset terminal modes.
The above example does so.

-- 
Live fast, die hard.

ImRe
+ - Re: getch() unix alatt ncurses/svgalib nelkul? (mind) VÁLASZ  Feladó: (cikkei)

> Tehat ugy kene karaktert beolvasni hogy azonnal megkapjam az eredmenyt,
> ne csak az enter leutesekor. Meg jobb lenne ha nem is varakozna, csak
> visszaadna hogy nincs billentyu lenyomva (mint a keypressed pascalban).

http://www.erlenstar.demon.co.uk/unix/faq_4.html#SEC49

===

How can I read single characters from the terminal? My program is always
waiting for the user to press RETURN. 

Terminals are usually in canonical mode, where input is read in lines
after it is edited. You may set this into non-canonical mode, where you
set how many characters should be read before input is given to your
program. You also may set the timer in non-canonical mode terminals to
0, this timer flushs your buffer at set intervals. By doing this, you
can use getc() to grab the key pressed immediately by the user. We use
tcgetattr() and tcsetattr() both of which are defined by POSIX to
manipulate the termios structure. 

#include <stdlib.h>
#include <stdio.h>

#include <termios.h>
#include <string.h>

static struct termios stored;

void set_keypress(void){
struct termios new;

    tcgetattr(0,&stored);

    memcpy(&new,&stored,sizeof(struct termios));

    /* Disable canonical mode, and set buffer size to 1 byte */
    new.c_lflag &= (~ICANON);
    new.c_cc[VTIME] = 0;
    new.c_cc[VMIN] = 1;

    tcsetattr(0,TCSANOW,&new);
    return;
}

void reset_keypress(void)
{
    tcsetattr(0,TCSANOW,&stored);
    return;
}

===

Bajban leszel, ha kurzor vagy Fnn gombokat akarsz igy beolvasni, mert
azoknak tobb bajtos kodja van.

z2
+ - Re: getch() unix alatt ncurses/svgalib nelkul? (mind) VÁLASZ  Feladó: (cikkei)

>ha jol ertettem, valamit az ioctl() hivassal allit at, meg reopeneli
>a /dev/tty-ket meg ilyesmi... na de mondjuk aix-en nincs is /dev/tty!

Elmeletileg a standard input line bufferelt (ezert var sorveg jelre), es at
lehetne allitani a setvbuf()-al, de valami miatt nekem nem jott ossze
(setvbuf nem jelez hibat amikor kikapcsolom a bufferelest a stdin-re, megis
var enterre). Egyebirant ha aix alatt nincs /dev/tty, akkor csak maskent
hivjak, de kell legyen valami device, amivel a console-hoz vagy a
terminalokhoz nyul.

Tamas
+ - kereses (mind) VÁLASZ  Feladó: (cikkei)

Hello !

Szuksegem lenne egy eleg reszletes leirasra arrol, hogy hogyan tudnek
egy keresot irni, agy html-ben levo adatbazishoz.
Leginkabb Java, JavaScript erdekelne, mar amennyire ez megvalosithato.

Elore is koszonom  :)

Raistlin
+ - Pascal->C (mind) VÁLASZ  Feladó: (cikkei)

Eljutottam a program atirasaval odaig, hogy mar le 
tudtam forditani... :))))
Termeszetesen meg nem mukodik... :(

Olyanba utkoztem, hogy az fread sehogyan se akarta azt
olvasni a strukturaba, ami a fajlban volt. A struktura
kozepenel benyomott valamit, es onnan elcsuszott minden.
Otlet hijan, atirtam fgetc-re, es ugy olvastam be a fejlecet.
Ugy mukodott. Akkor esett le, hogy a word alignment-et
ki kene szedni... :))
Azota megy...
az a resze a prg-nek.... :)))

---- Hazamegyek, lefekszem, csinaljatok helyettem ----
   I'm re     [E-mail]: 
[Web] www.extra.hu/radimre      [UIN] 37119586
+ - Lamer vagyok (mind) VÁLASZ  Feladó: (cikkei)

Ha nyomkovetem az alabbi kodreszletet, akkor
akkor az strcat-es sor utan kapasbol az else agban
szereplo fputs sorra ugrik. Mit rontottam el?
(Termeszetesen a temp, szovegnek valtozok foglaltak,
nem ertelmetlen helyre mutatnak.)

      if (tenyhossz != NULL)
      {
        strcat (temp,szovegnek);
        fputs (temp, destinat);
      } else
      {
        *(temp + strlen (temp) -1) = '\n';
        *(temp + strlen (temp)) = '\0';
        fputs (temp, destinat);
      }

Koszonet.
---- Hazamegyek, lefekszem, csina'lja'tok helyettem ----
   I'm re     [E-mail]: 
[Web] www.extra.hu/radimre      [UIN] 37119586
+ - Pascal to C (mind) VÁLASZ  Feladó: (cikkei)

Az eredeti Pascalos eljaras:
procedure InitScr(VideoMode:word);assembler; { VESA
képernyömód-bekapcsolás }
asm
   mov ax,4F02h       {ax-be a bekapcsolás }
   mov bx,VideoMode    {bx-be a videomód}
   int 10h    {a bekapcsolást a 10h-s magszakítás}
end;

Az altalam irt fuggveny:
#define MODE640x480x16M 0x111

void InitScr (unsigned int VideoMode) // VESA képernyömód-bekapcsolás
{
asm {
   mov ax,0x4F02          // a bekapcsolás kódja
   mov bx,VideoMode       // a videomód száma
   int 0x10                   // bekapcsolást a 10h-s magszakítás végzi
   }
};

Pascalost meg nyomkovetni is lehet, a C-set meg meg F8-cal sem tudom
atleptetni, mert szabalytalan muvelet. Windowsbol probaltam, de ha
Pascallal
ment, akkor C-vel is kene. Pontosan az int 0x10-es sornál fekszik meg.
Tanacs, otlet?

Ja, a Pascalost $111 -gyel, a C-set pedig MODE640x480x16M-mel hívom meg...
:))

Koszonet:
---- Hazamegyek, lefekszem, csina'lja'tok helyettem ----
   I'm re     [E-mail]: 
[Web] www.extra.hu/radimre      [UIN] 37119586
+ - Fw: DAO & VC (mind) VÁLASZ  Feladó: (cikkei)

> Sziasztok
> 
>  Kovetkezo a problema: C-bol kezelek DAO-n
>  keresztul MS-Access adatbazist.
>  Mivel onmagaban ha egy Access-adatbazist
>  megnyitunk, akkor mindenkinek
>  mindenfele joga van, arrol nem is beszelve,
>  hogy csak egyszer lehet megnyitni. Mindezt a rendszer adatbazissal -
>  MDW fajlokkal lehet finomitani.  Alapertelmezesben ez a
>  \windows\system\system.mdw.
> 
>  A DAO 3.0 eddig, akarmit csinaltam, mindig ezt
>  a  fajlt hasznalta mint  rendszer-adatbazist, hiaba adtam meg neki a
>  registry-ben egy uj  rendszerfajlt, hiaba irtam felul az eredeti
>  system.mdw-t a sajat, ujradefinialt mdw-vel. Es a programbol is
>  probalkoztam: DBENGINE.SystemDB="C:\\BLABLA.MDW", megse
>  akarja az igazsagot.
> 
>  Elore is koszi a segitseget
>  Bossanyi Tibor
> 
>
+ - Re: *** HIX CODER *** #456 (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok!

 A TDBGrid-et szeretnem kiboviteni azzal a funkcioval, hogy ha a user egy
oszlop fejlecere kattint, akkor sorbarendezi a rekordokat a valasztott
oszlop szerint. A halon talaltam fizetos komponenseket, amik tudjak ezt,
de en inkabb megirnam magamnak. Hogy lehet elindulni???

 Aron

 http://www.vein.hu/~gombasa  (downloadable sources!)
+ - C++ HIBA!!!!!!!!!! (mind) VÁLASZ  Feladó: (cikkei)

Hi!
    Engem mar megint tekerget ez a BC++ 4.5-os verzioju fordito. A lent levo 
programban a valtozok 'onallo eletet' elnek. Egyszer az
'a' erteke 7 aztan 9 neha meg -1. De a tobbi is valtozik. Mi a hiba?
A progi:
    #include <iostream.h>
#include <conio.h>
#include <dos.h>
#include <stdlib.h>

void main()
{
 _setcursortype (_NOCURSOR);
 clrscr();
 char       str[]={"Hello!"};
 signed short int a=-1,b=-1,n;
 signed int coord[5][1];
 for (n=0;n<=5;n++)
 {
  coord[n][0]=n+4;
  coord[n][1]=n+4;
 }
 while (!kbhit())
 {
  delay(30);
  if ((coord[0][0]<2) || (coord[0][0]>70)) a=-a;
  if ((coord[0][1]<2) || (coord[0][1]>22)) b=-b;
  for (n=5;n>0;n--)
  {
   coord[n][0]=coord[n-1][0];
   coord[n][1]=coord[n-1][1];
  }

  coord[0][0]=coord[0][0]+a;
  coord[0][1]=coord[0][1]+b;
  for (n=0;n<=5;n++)
  {
   gotoxy(coord[n][0],coord[n][1]);
   putch(str[n]);
  }
 }
 clrscr();
}

Elore is kossz!
    Jozsi
+ - Hang manipulallo+2 mp3 lejatszasa (mind) VÁLASZ  Feladó: (cikkei)

Sziasztok,

tapasztalt coderok velemenyet ill. reagalasat varnam 2 ugyben:

egy progit kene megirnom, ami azt csinalna, hogy az egyes hangkanalisok
intenzitasat lenne kepes manipulalni, sajnos nemtudom, hogy milyen
programozo kornyezetben (nyelvben) tudnam ezt megvalositani - termeszetes
Win32-s kornyezetben szeretnem...

a masik pedig hasonlo, programozasi kornyezetbol 2 vagy tobb mp3-ast
lejatszani ill. mixelni, lehetseges ezt megcsinalni pl. Visual Basic 5-ben?
gondolom, kellnekk hozza vmi komponensek - ha igen merre talalhatok

tud vki segiteni, otletekkel elarasztani? csinalt mar vki vmi hasonlot?

ko:ssz,
MARIA'N
* mailto: 
HTML ready!  ***************
+ - osszehasonlito program (mind) VÁLASZ  Feladó: (cikkei)

Kedves Olvaso!

Olyan programot keresek, ami TXT fileokat osszehasonlit es kiirja a 
kulonbsegeket.

Konkretan pedig program listak kulonbozo allapotainak osszehasonlitasara 
hasznalnam, amire a dos COMP-ja nyilvan nem eleg, mert elofordulhat, hogy 
tobb mint 10 byte valtozott :)
Olyasmit kepzeltem el, mint ahogy a Word korrekturaja kijelzi a 
"hianyokat-tobbleteket".

Ha neked van ilyened, kerlek kuldd el, vagy irj, hogy megbeszelhessuk.

Koszi: Balazs

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