1. |
VC++ DLL kezeles (mind) |
10 sor |
(cikkei) |
2. |
Message Dispatcher (BC++, de gondolom VC++ alatt is ugy (mind) |
76 sor |
(cikkei) |
3. |
prim.c (mind) |
41 sor |
(cikkei) |
4. |
Fw: Turbo Pascal rendezes (mind) |
23 sor |
(cikkei) |
5. |
Re: Logikusan: elvalaszto (mind) |
24 sor |
(cikkei) |
6. |
RE:perl tombmeret lekerdezes es egyebek... (mind) |
8 sor |
(cikkei) |
7. |
VB RichTextBox (mind) |
16 sor |
(cikkei) |
8. |
RE: Logikusan: elvalaszto (mind) |
47 sor |
(cikkei) |
9. |
Re: perl tombmeret lekerdezes es egyebek... (mind) |
109 sor |
(cikkei) |
10. |
Re: segiccseg!!! (mind) |
31 sor |
(cikkei) |
11. |
Pascalos Scankod tablazat (mind) |
95 sor |
(cikkei) |
12. |
Re: Logikusan: elvalaszto (mind) |
22 sor |
(cikkei) |
13. |
DOS-os BAT (mind) |
15 sor |
(cikkei) |
|
+ - | VC++ DLL kezeles (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Sziasztok
Adott egy DLL. Hogy tudom hasznalni a benne levo fuggvenyeket?
LoadLibrary-val betoltom, kapok egy HANDLE-t. Az MSDN-nel
annyira jutottam, hogy a GetProcAddress-szel kene valamit
eloadni, de nem sikerult...
Elore is koszi!
> ---------------------------------------------------------------
E-Mail: mailto: (PMail32 v3.12b)
Web: http://www.tar.hu/mephysto http://www.extra.hu/mephysto
|
+ - | Message Dispatcher (BC++, de gondolom VC++ alatt is ugy (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Hi,
Egy controlt irok BC++ (nem Builder!) ala. A control kuldozget uzeneteket a
parent dialogusanak.
Ezek az uzenetek Notification jelleguek, tehat pl. egy grid objektum eseten
elkuldi, hogy melyik Column felett nyomott bal gombot a tisztelt User.
Eleg primitiven sikerult csak megoldanom a dolgot.
A Parent message handlerebe rakok egy event handlert
DEFINE_RESPONSE_TABLE1( TSSTestDialog, TGiDialog )
EV_GSSN_FORMATAUSWAHL( 101, OnSSFormatAuswahl),
END_RESPONSE_TABLE;
typedef struct tagGSS_NOTIFY
{
NMHDR m_hdr; // Header for WM_NOTIFY !!!!!!
UINT m_Row; // Number of Row causing this notofication
UINT m_Column; // Number of Column causing this notofication
} GSS_NOTIFY;
template <class T>
inline void (T::*v_GSS_FORMATAUSWAHL_NOTIFY_Sig(void (T::*pmf)(GSS_NOTIFY
far&)))(GSS_NOTIFY far&)
{
return pmf;
}
#define EV_GSS_FORMATAUSWAHL_NOTIFY(id, notifyCode, method)\
{ notifyCode, id, (TAnyDispatcher)::v_LPARAM_Dispatch,\
(TMyPMF)v_GSS_FORMATAUSWAHL_NOTIFY_Sig(&TMyClass::method)}
#define EV_GSSN_FORMATAUSWAHL(id, method) EV_GSS_FORMATAUSWAHL_NOTIFY(id,
GSSN_FORMATAUSWAHL, method)
void TSSTestDialog::OnSSFormatting( GSS_NOTIFY& gss_Notify )
{
m_pGiSpdSt->SetColumnFormat( gss_Notify.m_Column );
}
Ez igy eleg ciki, mert a parent kodjaban a Notify strukturabol meg ki kell
szedni, hogy melyik tagja tartalmazza a lenyeges infot. (gss_Notify.m_Column
)
(Ilyen uzenetet kuldd a control: SendMessage ( GetParent ( hWnd ),
WM_NOTIFY, ( WPARAM ) GetWindowLong ( hWnd, GWL_ID ), ( LPARAM ) &nmGiSS );)
Ezt kellene valahogy felszepiteni, hogy a Parent szebb uzentet kapjon, pl
ilyet:
void TSSTestDialog::OnSSFormatting( uint Column )
{
m_pGiSpdSt->SetColumnFormat( Column );
}
De az istennek sem tudom megirni hozza a message crackert
Gondolom valami ilyen uzenetet kellene kuldenem ebben az esetben a
controlltol:
SendMessage ( GetParent ( hWnd ), WM_COMMAND, MAKEWPARAM ( GetWindowLong (
hWnd, GWL_ID ), GSSN_DELETECOLUMN ), MAKELPARAM ( hWnd,
pGSSData->m_LeftClickDownCell.m_Column ) );
2. kerdes
A win32.hlp ezt irja a RegisterWindowMessage-el kapcsolatban:
Only use RegisterWindowMessage when more than one application must process
the same message. For sending private messages within a window class, an
application can use any integer in the range WM_USER through 0x7FFF.
(Messages in this range are private to a window class, not to an
application. For example, predefined control classes such as BUTTON, EDIT,
LISTBOX, and COMBOBOX may use values in this range.)
Melyik fuggvennyel regisztralhatom az application private messageimet?
Erre azert lenne szuksegem, hogy a GUI programozo ne tudja hozzarendelni a
message handleremet egy editboxhoz pl. (legalabbis ne okozzon galibat)
Kosz:
dAb
|
+ - | prim.c (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Sziasztok!
#include <stdio.h>
#include <stdlib.h>
main () {
int szam;
int eredmeny;
printf("Írj be egy számot:");
scanf("%d", &szam);
eredmeny = prim(&szam);
if (eredmeny == 0)
printf("A szám prím");
else if (eredmeny != 0)
printf("A szám nem prím");
}
prim (szam) {
int x, y;
div_t div(int x, int y);
long int ciklus;
long int ertek;
int eredmeny;
for (ciklus = 1; ciklus <ertek; ciklus++) {
ldiv_t ldiv(ciklus, ertek);
if (y != 0)
eredmeny++;
}
return eredmeny;
}
Miert nem megy a program? Egybol megall a compiler azzal, hogy prim.c:
In function `prim': prim.c:23: warning: parameter names (without types)
in function
declaration
Mitol van ez? Hogyan tudom mukodesre birni az ldiv fuggvenyemet?
Elore is kosz minden valaszt:
Aron
kerlwk maganba is:
|
+ - | Fw: Turbo Pascal rendezes (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Igen tisztelt programozok!
Az alabbi problemaval fordulok Onokhoz...
Szoval van egy regebbi kis programocskam, mely TP7.0 alatt
irodott, de nem talalok egy olyan hatekony rendezesi algoritmust,
melyet rendesen at tudnek alakitani celjaimnak.
Adott egy olyan adatbazis, mely rendezetlenul tarolja a beerkezo
rekordokat. (az ujakat mar rendezne, de egyenlore nincs mihez,
ehhez a beszurasos rendezest valasztottam az uj adatok bevitele-
nel.) Ket kulcsmezo van, ezeket kellene berendezni novekvo sor-
rendbe. Ha van valamilyen jo otletetek, ne habozzatok megosztani
velem. (Tudom, polyasoknak valo a TP, de meg nem vagyok annyira
otthon az OOP es a Visual nyelvekben, de ami kesik nem mulik...)
Meg valami: ha valakinek meg van a TurboSort programcsomag,
- es hajlando lenne elkuldeni, vagy ajanlani egy weblapot - kerem
jelezze nekem
Koszonettel: Koncz Tamas
>
|
+ - | Re: Logikusan: elvalaszto (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Hello CODER!
2000. október 5. 5:04:00 AM -kor irtad:
> Felado : Runtime Dreams
> E-mail : [Hungary]
> Temakor: Logikusan: elvalaszto ( 53 sor )
> Idopont: Tue Oct 3 12:13:26 EDT 2000 CODER #963
> - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1. Elso kozelitesben csak azokat a sorokat vizsgáld,
amiben nem szerepelnek a betük és számok és nem space-bol alnak.
2. Ha nics behatarolva a "mintazat" hossza akkor elvileg mar meg
talaltad :)
3. Ha igen, akkor olvas a sorbol annyi karaktert, es karakterenkent
keresd a sorban /2. elofordulast/ ha az egymasutani karaktereket
egymas utan talalod masdszorra is, akkor nagy valoszinuseggel megvan
az elvalaszto sor.
Üdvözlettel!
mailto:
|
+ - | RE:perl tombmeret lekerdezes es egyebek... (mind) |
VÁLASZ |
Feladó: (cikkei)
|
> Van egy apro gondom, nem tudom pl. egy asszociativ % vagy egy normal @
> tombrol eldonteni, hogy mekkora, ha pl van egy @t tombom, ami
> 10 elemu a $t
> csak valami ARRAY(0x881bc)-ad vissza, a zarojelek kozotti ertek tomb
A scalar(@t);-vel probalkozzal szerintem.
udv
Biri
|
+ - | VB RichTextBox (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Udv!
A gondom a kovetkezo: van egy kis vb programom, amiben hasznalok egy rtf
controlt. Ebben bizonyos szovegreszeket automatikusan ki akarok emelni,
mondjuk boldolni. Szepen vegigkeresgelem a .find-dal, es a selected cuccost
selbold=true ra teszem. Minden mukodik, es szep. A baj az, hogy a .find
kozben a kepernyon levo szoveg scrollozodik, ahogy keresgeli a kovetkezo
stringet, ami kicsit idegesito, raadasul ha befejezte, akkor a szoveg az
utoljara boldot sornal marad. Hogy lehetne megoldani, hogy mikozben keres,
ne ugraljon a szoveg?
koszi
Biri
Ui: Ha esetleg csak vc-ben tud valaki megoldast, az is johet, max atirom az
egeszet.
|
+ - | RE: Logikusan: elvalaszto (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Szia Barnabas!
Probald meg a kovetkezot:
Olvasd vegig a karaktersorozatot úgy, hogy
minden karakternel megjegyzed azt,
hogy hany karakterrel fordult elő előrebb.
A keresest az eddig elofordult maximumtol inditsd.
Ha meg nem szerepel a kerarkter, akkor az ertek 0
Peldaul az alabbi sorozatnal:
-*=-=*--*=-=*-
0 max: 0
00 max: 0
000 max: 0
0003 max: 3
00030 max: 3 (kereses az akt poz -3 rol indul)
000304 max: 4
0003046 max: 6
00030467 max: 7 (megvan a minta tehat minden 7)
A vegeredmeny:
00030467777777
Ha tehat a sorazat vegen sok ugyanolyan szamot talalsz
(ami nem 0) akkor megva a keresett sor.
A hibás sor detektalasara tobb megoldas lehetseges:
1. Korlatot vezetsz be a minta hosszara (max ertekre),
ha ezt elerte, akkor nullazod, mindent ujra kezdesz,
mintha itt kezdodne a szoveg.
A peldaddal elve mondjuk a korlat 9
(kilencnel hoszabb ismetlodest nem talal meg):
---------------- -------------------------------
011111111111111102345678901111111111111111111111
2. Hosszu monoton sorozat utan kiugro ertekkel rendelkezo
karaktert kihagyod a figyelesbol.
Üdv,
Péter
|
+ - | Re: perl tombmeret lekerdezes es egyebek... (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Kedves Lista!
On 4 Oct 2000, at 22:13, HIX CODER wrote:
> Felado : [Hungary]
> Most ismerekedem a perl-el, eleg keves infom van rola, eddig csak
> forraskodokat nezegettem, de probalkozom. ;-))
Pedig olyan doksik vannak a neccen, hogy pacsit ad! :-)
> Van egy apro gondom, nem tudom pl. egy asszociativ % vagy egy normal @
> tombrol eldonteni, hogy mekkora, ha pl van egy @t tombom, ami 10 elemu a
Idezet a perldata manpage-bol:
$#days # the last index of array @days
azaz a tomb merete egyel nagyobb, mert az elso index 0.
> $t csak valami ARRAY(0x881bc)-ad vissza, a zarojelek kozotti ertek tomb
Csak akkor, ha a $t-be betettel valamit. Normalis esetben a $t-nek semmi koze
a @t-hez, es a %t-hez. Siman hasznalhatod mind a 3-at parhuzamosan. A @t egy
elemere ugyanis ugy hivatkozol, hogy $t[1] (a []-bol kiderul, hogy a @t-t
kell hasznalni). A %t egy elemere pedig $t{'akarmi'}, amibol megint kiderul,
hogy mirol is van itten szo.
> meretenek novelese vagy csokkentese utan sem valtozik, a kerdesem az
Persze, hogy nincs, mert ez csak egy ponter, amit esetleg ugy toltottel bele
a $t-ben, hogy \@t.
> lenne, hogy mivel kapom meg a tomb elemszamat esetleg a meretet valamifele
l. fent. Illetve a $t = @t egybol ezt adja, hiszen egy tomb scalar helyen ezt
adja vissza alapban (l. perldata manpage).
Egy pelda:
my @t=(2,4,6,8);
print @t;
print "\n";
print @t."\n";
print scalar(@t)."\n";
my $t = @t;
print $t."\n";
Es az eredmeny:
2468
4
4
4
Az asszociativ hash-el egy egeszen picit trukkozni kell, mert scalar
kornyezetben egy stringet ad vissza, ami a kovetkezo formatummal rendelkezik:
"kulcsok_szama/osszes_tombelem". Tehat a peldaprogram:
my %t=(a => 2, b => 4, c => 6, d => 8);
print %t;
print "\n";
print %t."\n";
print scalar(%t)."\n";
my $t = %t;
print $t."\n";
print substr($t,0,1)."\n";
print ($t+0)."\n";
Es az eredmeny:
a2b4c6d8
4/8
4/8
4/8
4
4
> sizeof van? Trukkosen ki tudom nyerni, de gondolom van erre valami egyszeru
> megoldas.
Igen van! :-)
> A masik a perl for-ja elfogad-e ilyesmit?
> for (i=0,j=1;i<10;i++){...}
> Tehat lehet-e ','-vel elvalasztani kifejezeseket, mint normal C-nel?
for($i = 1, $j = 1; $i < 5 ; $i++) { print $i.":".$j."\n"; }
for( my( $i, $j ) = ( 1, 1); $i < 5; $i++) { print $i.":".$j."\n"; }
A masodik u.a., csak lokalis valtozoval.
> Megegy dolog, milyen gyakorlati ertelme van az unless-nek? Ha jol
> ertelmeztem a dolgot, akkor ez siman csak egy if, azzal a kulonbseggel,
> hogy itt akkor lep be moge a progi, ha hamis a feltetel...
Pont ez az ertelme. Olvashatobba teszi a kodot. Ha nem kell, akkor ne
hasznald. Ha szereted, akkor hasznald egeszseggel. Ugyan ez az ertelme a
hetravetett if-nek is. Egy dolgot PERL-ben nagyon sokfelekeppen meg lehet
oldani. Azt hasznald, ami a szerinted legolvashatobb...
En hosszas shell (bourne, ksh), awk, sed, grep turasi tapasztalattal kezdtem
a PERL-t hasznalni es szerintem nagyon jol hasznalhato. Most irtam egy soros
port turo porg-ot. Az alapot C-ben. Amikor az ment, akkor a feldolgozast PERL-
ben csinaltam meg es a soros port kezelest nagyon egyszeruen attettem PERL-be
A POSIX modullal szinte csak sormasolas.
Sok sikert && udv From:, a botladozo
|
+ - | Re: segiccseg!!! (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Kedves Lorincz Zoltan!
On 4 Oct 2000, at 22:13, HIX CODER wrote:
> Felado : [Hungary]
> a keresem a kovetkezo:
> soros, vagy parhuzamos portra lesz csatlakoztatva
> egy hazilag keszitett potmeter hangeroszabalyozas
> celjabol.
> - Win alatt hogy lehet a hangerot szabalyozni
> - Win alatt hogy lehet ezt a port kommunikaciot megvalositani.
Ezt nem ertem. Ha potmeter, akkor a hangkartya game-portjara tudod kotni. 0-
100 kOhm-ot kell tudnod es 4 potmetert tudsz bekotni. Ha kell, akkor leirom
hogyan. A parhuzamos/soros port-on keresztul csak nagy kavarassal tudnal
adatokat bekuldeni (A/D konverter, egyebek).
Ha mindenkeppen a soros portot szereted, akkor belezz ki egy egeret. Igy ket
tekertyud is lesz, amit akar hangero szabalyzasra is hasznalhatsz...
> A legnagyobb segiccseg az lenne, ha parsoros peldaprogikat
^^
Brrr...
> kuldenetek
Kuldhetek, ha pontosan eldontod, hogy mit szeretnel csinalni...
Udv From:, a peldamutato :-)
|
+ - | Pascalos Scankod tablazat (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Hali coderek
>Meg nagyon nagy szuksegem lenne egy Pascalos escape kod tablazatra, amivel
>figyelni tudom a leutott billentyuket
Az itt kovetkezo program a "VGA kartya programozasa" cimu konyvben jelent
meg
(Egyebkent egy pascalos programozonak ezt el KELL olvasnia)
(***************************************************************************
)
(*
*)
(* SCAN kodok megallapitasa a modositott billentyuzet-megszakitassal
*)
(*
*)
(***************************************************************************
)
{$G+}
Uses Crt,Dos;
var
i:integer;
Ktb:array[0..127] of boolean; { Billentyuzet lenyomas tablazat }
oldKey : procedure;
const
hh : array[0..15] of char='0123456789abcdef';
Function Hex(x:byte):String; { DEC->HEX konvert l s }
Begin hex:=hh[x shr 4]+hh[x and 15]; End;
Procedure KeyIRQ;Assembler;
Asm
push DS { A hasznalt regiszterek elmentese }
push ax
push bx
push cx
mov ax,SEG Ktb { Inicializalasok }
mov DS,ax
xor bh,bh { BH = 00 }
mov cl,bh { CL = 00 }
in al,60H { A billentyu SCAN kod beolvasasa }
mov bl,al { BL = kod }
and bl,7fH { A lenyomas/felengedes bit kimaszkolasa }
shl al,1 { A lenyomas/felengedes bit a Cy-be }
cmc { Negalas }
adc cl,00 { Tarolas a tablazatban }
mov [bx+OFFSET Ktb],cl
in al,61H { A megszakitas csatorna visszaallitasa }
mov ah,al
or al,80H
out 61H,al { billentyuzet "data acknowledge" jelzes }
mov al,ah
nop { Keves varakoz s (soros adatkikuldes) }
nop
nop
out 61H,al
cli
mov al,20H { 8259 "megszakitas vege" jelzes }
out 20H,al
sti
pop cx { Regiszterek vissza a verembol }
pop bx
pop ax
pop DS
iret { Megszakitas vege }
End;
BEGIN
Clrscr;
); { A $09 vektor tarolasa }
); { A sajat rutin aktivalasa }
{ Kiirjuk a SCAN kodokat }
For i:=1 to 127 do write('$'+hex(i),': ');
Writeln;Writeln;Writeln;
Textattr:=$F;
Writeln(' Kiepes: CTRL-ESC ');
{ Ez a ciklus vegzi a billentyuk lekerdezeset }
{ Minden lenyomott billentyut egy karakterrel jelez }
Repeat
For i:=1 to 127 do
if ktb[i] then memw[$b800:(i-1)*16+10]:=$0edb
else memw[$b800:(i-1)*16+10]:=$0000;
Until KTB[1] and KTB[$1D];
{ Kilepes a CTRL-ESC kombinaciora }
{ A $09 vektort visszairja az eredeti ertekre }
);
END.
(***************************************************************************
)
U.I. : probaljatok ki dos modban a Ctrl+Alt+Del - t
Tisztelettel NagyI
|
+ - | Re: Logikusan: elvalaszto (mind) |
VÁLASZ |
Feladó: (cikkei)
|
pascalban vhogy igy (nincs ellenorizve, csak ugy IQ-bol :)
function sorminta( sor,jel : string ) : boolean;
var hibas : integer;
volt1 : boolean;
;
Udv: Tibor
|
+ - | DOS-os BAT (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Tisztelt CODER!
Van-e valami magyarazata annak, hogy ha .BAT file-nak a parameterekben ;
-t (pontosvesszot) adunk, akkor azt o szokozzel helyettesiti?
Peldaul az alabbi program pp 1;2 -vel inditva 1 -t ir ki.
pp.bat >
echo %1
Aggod Jozsef
|
|