-
IT café
Új hozzászólás Aktív témák
-
pmonitor
aktív tag
válasz martonx #15627 üzenetére
Ezért hiányzik egy olyan webhely/oldal/fórum/akármi, ahol témánként a hatékonyabb megvalósításokat tartalmazza. Vagy legalább az egyetemi tankönyvben/jegyzetben ilyen algok lennének. De ez azt hiszem, hogy csak álom.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz sztanozs #15629 üzenetére
Ez a kód:
static void Teszt_5(char[] arr)
{
char[] arr2 = (char[])arr.Clone();
int size = arr.Length;
QuickSort(arr2, 0, size - 1);
//Array.Sort(arr2);
int n = arr2.Length;
int i, j;
char temp;
//for (i = 0; i < n; ++i) arr2[i] = i + 1;
while (true)
{
// kiirjuk az aktualis permutaciot
/*for (i = 0; i < n; ++i) Console.Write("{0} ", arr2[i]);
Console.WriteLine("");*/
// megkeressuk, hol kezdodik az utolso monoton csokkeno reszsorozat
for (i = n - 2; i >= 0 && arr2[i] >= arr2[i + 1]; --i) ;
// ha a teljes sorozat monoton csokkeno, akkor vegeztunk
if (i < 0) break;
// a csokkeno reszsorozat elotti elemet ki kell cserelnunk a reszsorozatban nagysag szerint rakovetkezovel
for (j = n - 1; arr2[j] <= arr2[i]; --j) ;
temp = arr2[i]; arr2[i] = arr2[j]; arr2[j] = temp;
// tovabbra is monoton csokkeno a reszsorozatunk, forditsuk meg, hogy monoton novekedo legyen
for (j = i + 1; j < n + i - j; ++j)
{
temp = arr2[j]; arr2[j] = arr2[n + i - j]; arr2[n + i - j] = temp;
}
}
}Ennek a kódnak:
static void IsmPermutacio(char[] tomb2, int[] N, int n, int[] W1, int s, int i)
{
int[] V = new int[n];
int[] W = new int[n];
CopyMemory(W, W1, (uint)(n * intSize));
//Array.Copy(W1, W, n);
if (i == 0)
{
for (int l = 0; l < s; ++l) W[l] = -1;
}
if (s != 0)
{
bool ind = true;
do
{
Kombinacio(V, s, N[i], ref ind);
if (!ind)
{
Betesz(N[i], n, V, W, i);
IsmPermutacio(tomb2, N, n, W, s - N[i], i + 1);
Kivesz(W, n, i);
}
} while (!ind);
}
else
{
Betesz(N[i], n, V, W, i);
//*****************************************************
/*for (int q = 0; q < n; ++q) Console.Write(tomb2[W[q]]);
Console.WriteLine("");*/
//*****************************************************
for (int l = 0; l < n; ++l) W[l] = -1;
}
}
static void Kombinacio(int[] V, int n, int k, ref bool ind)
{
if (ind)
{
for (int i = 0; i < k; ++i) V[i] = i;
ind = false;
return;
}
for (int i = k - 1; i > -1; --i)
{
if (V[i] < n - k + i)
{
++V[i];
for (int j = i + 1; j < k; ++j) V[j] = V[j - 1] + 1;
return;
}
}
ind = true;
}
static void Betesz(int ni, int n, int[] V, int[] W, int i)
{
int j = -1, l = 0;
for (int p = 0; p < ni; ++p)
{
while (l < n)
{
if (W[l] == -1) ++j;
if (j == V[p])
{
W[l] = i;
break;
}
++l;
}
}
}
static void Kivesz(int[] W, int n, int i)
{
for (int l = 0; l < n; ++l) if (W[l] == i) W[l] = -1;
}Nem az optimalizálása, hanem teljesen más(egyszerűbb) algoritmus.
És sztem az első algoritmus érthetőbb is.
[ Szerkesztve ]
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz Livius #15638 üzenetére
Próbálgatom szárnyaimat. Az a baj, hogy angolul az írott szöveg lényegét megértem, de önálló mondatot nem tudok összerakni. Meg a szavak szinonimái is 1 kicsit gondot okoznak. Úgyhogy marad a kevert angol/magyar. De pl. a QuickSort-ot meghagytam angolul.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
Itt találtam a következő algoritmust(átírtam C-be):
void GenArrangement(int n, int k, int idx, int used, int arran) {
if (idx == k) {
printf("%d\n", arran);
return;
}
int i;
for (i = 0; i < n; i++)
if (0 == (used & (1 << i)))
GenArrangement(n, k, idx + 1, used | (1 << i), arran * 10 + (i + 1));
}Ez sokkal gyorsabb, mint az én algoritmusom. Kár, hogy csak nagyon korlátozottan működik. De azért érdekességnek jó.
[ Szerkesztve ]
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz sztanozs #15629 üzenetére
>Alapvetően ez nem egy programozási fórum, vsz nem fogsz találni túl sok fórumozót, akit ez különösképp megmozgatná
Igazad van. De azért úgy néz ki, hogy olvassák(nem tudom, csak gondolom). Abból gondolom, hogy azért a google az első oldalon hozza az oldalam az "1D vágás" kulcsszóra(ezúton is szeretném megköszönni azoknak, akik meglátogatták az oldalam). Igaz, nem csak ezen a fórumon vagyok, de azért a legaktívabb itt vagyok.
Mondjuk azt látom, hogy itt a rendszeres válaszadók nagyon nagy többségét nem érdekli a konkrét problémák kóddal, vagy legalább pszeudokóddal való megoldása). Ez nem feltétlenül baj. Ráadásul azért van kivétel is. Egyébként az "ország legnagyobb fejlesztői portál"-jának nevezett fórumon sem volt szokásban a kód/algoritmus adása a rendszeres válaszadók között. Én kivétel voltam. Amire tudtam válaszolni, arra válaszoltam. Csak a moderátor ott is a "rizsázást" tartotta "a priori"-nak. Mondjuk részben meg lehet érteni olyan helyen, mint ez a fórum, ahol alapvetően nem a programozás a fő irányvonal. De sajnos ott is csak ez megy. Mondjuk abból a szempontból meg lehet érteni, hogy ha valaki viszonylag hosszabb kódot ad, akkor egyrészt abból ki lehet venni, hogy valóban van-e köze a programozáshoz(tehát gyakorló programozó-e). Lásd joysefke-t, aki viszonylag rövid idő alatt összeállított 1 kódot, OOP elven. Másrészt viszont az is kijön, ha valakinek lövése sincs az egészhez. Ezért nem adnak kódot/pszeudokódot, még ha tudják is a választ. Meg amúgy is könnyebb a rizsázás. De ez a felfogás szerintem nem lenne megengedhető egy magát fejlesztői oldalnak tituláló oldalon. Itt még azért jobban elfogadható.
Ugyanakkor nem tagadom, hogy az esetleges olvasók miatt linkeltem be az oldalam ide többször is. De gondolom ez nem bűncselemény. A fórumozásnak van rossz és jó oldala is.http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz Silεncε #15658 üzenetére
Ez is egy aspektus. De fő a konzekvens nézőpont lenne sztem. Pl. a moderátor azt mondta, hogy "én biztos nem adok kész kódot". De érdekes, azért azokat a post-okat nem törölte, akik kész kódot adtak. Annyit csinált, hogy aki kódot adott, azt lepontozta(10-20 pötty). Aki meg esszét írt, őt meg felpontozta(50 pont). Arról nem is beszélve, hogy akinek a "rávezetés" az álláspontja, az hogy fér össze a pontozással? Kié a megoldás és hány pontért? Hogy illik bele ez a régebbi rendszerbe, ahol minden "megoldás 50 pontot ért"? Ez az egész pontozósdi úgy is 1 nagy h......g, ha konzekvens(ek) lenne/lennének a moderátor(ok). Közben meg értékes topic-okat törölgetnek.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
+1
Szted ebben ki segített nekem? Senki. Úgyhogy nem ijedek meg a feladatoktól én sem. De sokszor jó lenne, ha legalább az alap algoritmusokban(nem ipari titkoknak minősülő algoról beszélek) lenne egy olyan webhely, amiben meg lehetne bízni, hogy ott használható kód(ok) van(nak). És csak azok.
szerk.: az előző postodra írtam.
[ Szerkesztve ]
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
Azért ez sem semmi!
Az ismétléses permutációnál lehet megtalálni az ismétléses variáció algoritmusát!http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz sztanozs #15668 üzenetére
Igazából a GitHub-ot Livius ajánlotta. Nekem mind1, hogy olvassák-e, vagy hogy milyen réteg olvasgatja/nézegeti. A publikus kódjaim 1-2 témában feltettem(végülis nem került semmibe).
Ami jobban érdekelne, az a Cutter programom hatékonysága/sorsa. Dehát akkor is tudok aludni, ha nem tudom meg.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
1 kérdésem lenne. Az oldalamra/GitHub-ra fel lehet tenni olyan kódot, amely más weboldalról származik? Pl. innen, vagy erről az oldalról, vagy más fórumról?
Nincs jogi következménye? Én magamtól azt mondanám, hogy nyugodtan, de azért megkérdezlek titeket is.
[ Szerkesztve ]
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
-
pmonitor
aktív tag
válasz martonx #15606 üzenetére
Ezt a C++ kódot szerettem volna elkészíteni C#-ban. Kezdődött azzal, hogy a "DRIVE_LAYOUT_INFORMATION_EX"-et nem vette be a gyomra(ezt a végén sikerült megoldanom). Folytatódott azzal, hogy a "FindFirstVolumeMountPoint/FindNextVolumeMountPoint" nem működött. Ez helyett a "GetVolumePathNamesForVolumeName"-t kellett használnom. Aztán mikor kész lettem, és kipróbáltam 1 olyan gépen, amiben linux meghajtó is van, azt nem listázta ki, míg C++-ban igen. Rákényszerültem a natív .dll használatára, hogy legyen 1 működőképes program. Amikor ki akartam próbálni C#-ban, hogy 1 használaton kívüli pendrive-ról 1 szektort beolvasok, majd változatlanul visszaírom, akkor nem adott hibát, de tönkretette a pendrive-ot úgy, hogy újra kellett formáznom. Ezt is bele kellett tennem a natív .dll-be. Így már tökéletesen működött a pendrive írása is.
Egyik esetben sem tudtam elkerülni a natív .dll használatát, hogy hibátlanul működő binárist kapjak. Régebben írtam, hogy a C# csak játékszer a C/C++-hoz képest. Hát ha ez szó szerint nem is igaz, de azért nem áll messze a valóságtól. Egyetlen nagy előnye van: hogy gyors vele a fejlesztés. Semmi más. Egyszer még a prog.hu-n a társalgóban az egyik nick azt kérdezte, hogy miért ilyen lassú a .Net. Azt válaszoltam neki, hogy "a kényelem ára". Azóta sem változott a véleményem.
[ Szerkesztve ]
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz Livius #15722 üzenetére
>Általában amikor feltételezzük hogy lassú valami a .Net ben vagy valamiben a végén mindig kiderült hogy a user a hülye
Köszönöm a megtiszteltetést
Ezt légyszíves csináld már meg úgy, hogy a C# gyorsabb legyen. Ha megmutatod a gyorsabb kódot, akkor beismerem, hogy tényleg hülye vagyok, mert csak nem tanultam meg a .Net-ben azokat a dolgokat, amitől gyors lesz.
Szerk.: egyébként ez nem particionáló/formázó program.
[ Szerkesztve ]
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz Livius #15727 üzenetére
Kezdésnek?
Szted. itt mit használok, ha nem azt?
Nagyon kezdőnek nézel engem, mert nem vagyok programozó(hála isten). Legalábbis nem mondom magam annak. Mert vannak, akik csak állítják magukról, hogy programozók.
[ Szerkesztve ]
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz nevemfel #15731 üzenetére
Tegnap délelőtt tettem fel ezt a kérdést a fórumban. Még választ sem kaptam rá. Azóta megoldottam ezt is, sőt, az egész feladatot, amit célul tűztem ki magamnak.
>miért nem kapják a kész megoldásokat a fórumban.
A fórum nem arra való, hogy megoldják az ember problémáját. Csak akkor tudnám, hogy mire.
Szerk.: Erre mondod, hogy "Egy rakás vinnyogó szociopata?"?
[ Szerkesztve ]
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
Ebből ez tetszik a legjobban:
>and much more.Az én kódom ebbe tartozik. Egyébként már azon is csodálkozom, hogy játékra is ajánlja, pedig oda kell csak igazán a matek. Te meg ugye azt írtad, hogy matematikai problémák megoldását erőltetem rá.
>ki lehet belőle erőszakolni win32 hívásokkal mindenfélét, az még nem azt jelenti, hogy ez a normális.
Akkor szted. pl. a pinvoke.net egy nem normális webhely lenne azért, mert tele van win api hívások leírásával?
Inkább az a baj, hogy benne van ez a funkció, de nincs jól kidolgozva. Egyes win api függvények nem, vagy csak bonyolultan használhatók. Sztem. ez hiba.
Szerk.: @dabadab:
Lehet, hogy igazad van. Bár volt aki segített. A permutációk témában pl. 2-en is. Sok kérdésem meg nem is volt azon kívül, mint ez. Sztem inkább arról van szó, hogy lövésük sem volt a megoldáshoz, hiába programozók vannak itt. Ezt arra(is) alapozom, hogy láthatod: 2-en is azt írják, hogy a win api hívások nem normálisak. Ezek szerint nagy tapasztalatuk lehet benne.[ Szerkesztve ]
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz Livius #15740 üzenetére
Látod barátom, tényleg rossz helyen járok, ha egy perfekt angolos nem tudja lefordítani angolra a magyar hibaüzenetet. Egyébként mint írtam, megoldottam nélkületek is.
Egyébként a fórumszabályzat is azt írja:
A Szolgáltatással kapcsolatos főbb szabályok az alábbiakban kerülnek kifejtésre.
.
.
.
A Felhasználói Tartalom nyelve a magyar, ettől eltérni csak indokolt esetben lehet.Amúgy meg amit kell, azt megértem angolul is.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz Livius #15744 üzenetére
Szted. ezt az oldalt hogy találtam meg(és vettem értelmét), ha nem tudnék angolul googlezni?
Ha annyira indokolt eset, akkor beszélgessetek csak angolul.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz Silεncε #15747 üzenetére
Az alap az, hogy van neve. A minisztereknek, könyvelőknek, villany-/víz-/autószerelőknek, orvosoknak, tanároknak stb... stb... Mindegyiknek van neve. Az anonim "szakember" nem szakember. Messziről jött ember azt mond/ír, amit akar. Igazából egy nickről nem igazán lehet eldönteni, hogy programozó-e. Erre a kedvenc példám a prog.hu fő moderátora volt, tehát ő döntötte el, hogy ki mennyi ún. szakmai pontot kap. Aztán kiderült, hogy azt sem tudja, hogy mi az érték- és referencia típus között a különbség, meg azt sem tudta, hogy mi az a formátum string. Számoknál a vezető nullákról még csak nem is hallott, mert az szerinte nem ugyanazt a számot ábrázolja. Na azóta alapból a nick alapján nem sorolok be programozónak senkit. Sajnos a prog.hu-n megtapasztaltam, hogy egy csomóan csak programozónak mondják magukat.
Aztán azon kívül, hogy van neve, még az is számít, hogy a fő jövedelme a fejlesztésből adódjon. Valódi fejlesztésből, ahol az idő nagy részét kódírással tölti. Próbáljon meg valaki fejleszteni kód nélkül... Kíváncsi lennék a kód nélküli programra.
Fórumokon meg az is kitétel számomra, hogy segítőkész legyen. Mit ér a fórumon egy olyan szaki, aki nem akar segíteni, ha tudna is(magában tartja a tudását)?
@opr:
> ha valaki ignorálja a srácot, mert nem tetszik neki a stílusa, vagy más területen dolgozik, tehát nem tud neki segíteni, akkor az nem programozó.Csak félig ismertél ki. Ugyanis a mondat első fele igaz. Ha valaki azért nem segít valakinek, mert nem tetszik a stílusa, őt nem nevezném egy fórumon programozónak. Már csak azért sem, mert a fórumon nem csak a kérdezőnek segítesz, hanem aki idetéved a fórumra, mint olvasó, neki is. Tehát mikor azt mondod, hogy leszarsz, akkor nem csak engem szarsz le, hanem az olvasókat is. A mondatod másik fele hibás következtetés.
[ Szerkesztve ]
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz Silεncε #15764 üzenetére
Az első pontra: Itt elég sokan felvállalják a nevüket a nagy nyilvánosság előtt is, tehát nem ördögtől való, amit írtam.
Amit találtam ezzel kapcsolatban a második pontodhoz(csak én pontatlanul fogalmaztam). Ezt a részt emelném ki:
A programozáshoz, a jó program írásához nem kell különleges képesség, viszont rengeteget kell gyakorolni. Elsősorban matematikai tehetséget igényel, plusz kommunikálnod kell tudni a számítógéppel.Tehát aki alapvető matematikai problémára azt mondja, hogy az nem programozás - na ő nem programozó.
harmadik pontra: Te magad írod, hogy ha tudsz, segítesz. Viszont nagy véleménykülönbség van köztünk abban, hogy ez elvárható-e mindenkitől. Szted. nem. Sztem. igen. Főleg, ha van ideje rá az illetőnek. Nem azt mondom, hogy naponta 100 kérdésre adjon megoldást, ha mind a 100-at tudja, de az, amit Te csinálsz, az szerintem elvárható.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
Kb. 3 hete a "C programozás" topikban volt 1 kis diskurzus goto ügyben. Hogy használjunk gotot, vagy ne. Ott az egyik nick a következő példát hozta fel:
int __init my_init_function(void) {
int err;
err = register_this(ptr1, "skull");
if (err) goto fail_this;
err = register_that(ptr2, "skull");
if (err) goto fail_that;
err = register_those(ptr3, "skull");
if (err) goto fail_those;
return 0;
fail_those: unregister_that(ptr2, "skull");
fail_that: unregister_this(ptr1, "skull");
fail_this: return err;
}Én erre hoztam fel 1 strukturált megoldást, amiért majdnem lefejezett. Azóta a következő kódot követtem el:
int __init my_init_function(void) {
int unreg = 0;
int err = register_this(ptr1, "skull");
if (err) unreg = 1;
else if (err = register_that(ptr2, "skull")) unreg = 2;
else if (err = register_those(ptr3, "skull")) unreg = 3;
switch (unreg)
{
case 0: break; //ez azért van az első helyen, hogy hibátlan futásnál legyen a leggyorsabb.
case 3: unregister_that(ptr2, "skull");
case 2: unregister_this(ptr1, "skull");
case 1: break;
default: break;
}
return err;
}Itt készítettem 1 rövid összefoglalót a goto használatáról(illetve nem használatáról). Sztem a goto-t nyelvtől függetlenül SOHA nem kellene használni. Ez nem csak C-ben, de más strukturált/OOP/eseményvezérelt nyelvben is így van. Az oldalamon(a fenti linken) írtam, hogy még a Kernighan - Rithcie páros is hibásan írta le a goto használatát, amit a többi könyv írója is átvett tőle. Ott ki is fejtettem, hogy sztem. miért. Na meg hogy a goto miért osztódással szaporodik.
Ugyanakkor sokat tanultam ebből a "skull"-os példából . Még sosem alakítottam át goto-val tele lévő kódot strukturáltra. De ez csak megerősítette azt, hogy a szekvencia-szelekció-iteráció hármassal tényleg mindent meg lehet oldani, nincs szükség a határok nélkül ide-oda ugráló goto utasítás alkalmazására.http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz bambano #15819 üzenetére
Ilyent pl. te normális helynek nevezel? Csak az alábbi hibák voltak benne:
1.: kliens oldalon át lehet írni az árat
2.: sima .txt file-ban tárolt jelszavak
3.: hozzáférhetők voltak a felhasználók személyes adatai.Ha neked ilyen 1 normális hely, akkor oda úgy sem mennék(meg amúgy sem).
És multiról beszélünk, nem zúgcégről. Ezek után nem csodálkozom, ha tele lennének goto-kal a kódok.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz Rimuru #15823 üzenetére
Már csak ezért sem szoktam még VBA-ban sem használni a Goto-t, csak a Resume Next-et. De ezt itt már leírtam(2. bekezdés).
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz MostaPista #15867 üzenetére
Kivételesen( ) egyetértek a többiekkel. Egy ilyen program megírása nem 2 perc. Mondjuk amit itt valaki írt, hogy 3 fővel fél év, azt azért túlzásnak tartom.
Ettől függetlenül szinte minden témakörben van(nak) ingyenes program(ok) is. Valamint pl. a codeproject.com-on is vannak forráskóddal együtt ingyenes programok. Csak regisztrálni kell a letöltéshez. Én pl. a MyTimer/MyStopwatch osztályomat az egyik ilyen alapján készítettem el(csak kibővítettem).
Az, hogy itt a maguknak programozónak nevező nick-eknek nincs publikus referenciája/projektje/kódja, azon én is csodálkozom. De hát ilyen nick-ek alkotják ennek a fórumnak a gerincét(sajnos). Már csak azért is csodálkozom, mert valamikor a programozók is tanultak. Tanulás alatt kódokat/programokat kellett, hogy írjanak. Ezekre általában büszkék(nem pejoratív) is. Sajnos ilyenről csak a prog.hu-ról tudok példát hozni. pl. ezt, az egyik készítette. Tehát a prog.hu-n legalább néhányan vannak ilyenek, ezt el kell ismernem attól függetlenül, hogy az sem tartozik a kedvenceim közé. De erről a fórumról nem tudnék egy példát sem összekaparni az "ős" nick-ek közül. Pl. a TC-t is állítólag 1 fő alkotta(pedig nem kevés funkciója van), és ingyenesen is használható(igaz, hogy azt hiszem, hogy csak 30 napig!!??). Mondjuk a TC nem az én esetem, de ez más kérdés. De sajnos az ilyenek nem járnak ide fórumozni. De attól még vannak ingyenes nagyobb alkalmazások is.http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
De legalább abban egyetértünk, hogy nem 2 napos munka. Egyébként én azt vallom, hogy magas szintű nyelvekben(pl.: C#) 1 1000-1500 soros, 1 fájlos projektnél nagyobb program soha nincs kész...
#15903 Ispy:
Miért? A "pmonitor", "Ispy" stb... micsodák, ha nem nick-ek? Egyébként, ha a "gonosz" és a "pfejj" szavakat kivesszük a hozzászólásod első két sorából, akkor igaz, amit írtál. Talán mutatnak valamit? A prog.hu-n 2-3 nick mutatott valamit, de itt nem nagyon láttam ilyent(komolyabb dolgot meg főleg nem). Itt 3-4 nick hozzászólásaiból látszik, hogy programozók lehetnek. Na de mind1. Nem biztos, hogy sikerül, de megpróbálom ezt a véleményem nem hangoztatni.http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
Egyébként én erre a pascal kódomra vagyok büszke. Ez 2 szirénát hajtott meg LPT porton keresztül. A vezérlést assembly betétekkel oldottam meg. Az elektronikai részét is én terveztem meg, és készítettem el. Most meg már azt is elfelejtettem, hogy a Pascal létezik. Asmyról nem is beszélve. Ejj, a régi szép idők, amikor még követlenül lehetett a hardvert birizgálni...
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz pmonitor #15913 üzenetére
Itt van a program vezérlése működés közben. A régi szép idők...
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
Ezt a kódot még régebben írtam, csak most előhalásztam, és apró dolgokat változtattam rajt. Input hook-okat csinál.
A szirénákkal való fájlok helyét megváltoztattam. Ezeken a helyeken lehet megtalálni ezeket:
szirena.txt.
szirena.mp4.http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz Cicero #15932 üzenetére
Neked a legjobb a VBA. Word és Access objektumaihoz nem értek. Excelben a következőképpen tudsz 1 már meglevő munkafüzetből új munkafüzetet megnyitni:
1.: ALT+F11 -> ekkor megjelenik a VBA editor.
2.: Insert menü -> Module menüpontra klikk. Ekkor megjelenik a Module1. Dupla katt rá
3.: A megnyíló ablakba beilleszted a következő kódot:Sub a()
Dim excapp As Object
Set excapp = CreateObject("Excel.Application")
excapp.Visible = True
Dim wrkb As Object
Set wrkb = excapp.Workbooks.Add()
wrkb.Worksheets(1).Range("A1") = "abcd"
End Sub
Sub b()
Dim excapp As Object
Set excapp = CreateObject("Excel.Application")
excapp.Visible = True
excapp.Workbooks.Add
excapp.Workbooks(1).Worksheets(1).Range("A1") = "abcd"
End Sub4.: valamelyik eljárás törzsébe belekattintasz, hogy a kurzor benne legyen.
5.: F5-öt nyomsz Ekkor lefut az az eljárás, amiben a kurzor van.Egyébként a példámban az a() és a b() eljárásom ugyanazt csinálja: Megnyit egy új munkafüzetet, és annak a munkalapjának az első cellájába beleírja az "abcd" szöveget.
Először gyakorold az Excel és a Word objektumaival való munkát, csak utána kezdj nekiállni ennek a feladatnak.
[ Szerkesztve ]
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
VB6/VBA-ban hiába változtatod meg a ciklusváltozót, attól még az eredeti érték van kőbe vésve(hogy szép magyarosan fogalmazzak). A C-s nyelvekben meg ha megváltoztatod, akkor kilép.
szerk.: mármint ha úgy változtatod meg, hogy a feltétel nem teljesül.
[ Szerkesztve ]
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
Az kevert meg, hogy a felső határ megváltoztatása nem lehetséges.
Sub a()
Dim hatar
hatar = 5
For i = 0 To hatar
Debug.Print i
hatar = 1
Next
End SubItt hiába változtatod meg hatar értékét 1-re, attól még 5-ig írja ki az eredményt. Ez a kőbe vésett. Csak annyi rémlett, hogy valami van...
Egyébként azért írtam a CreateObject()-es példát, mert az VB6/VBA/VB.NET-ben is használható. Csak Vb.net-ben nem kell a "Set".
[ Szerkesztve ]
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz pmonitor #15957 üzenetére
Azt hozzá kell tenni, hogy azért a C/C++(esetleg Delphi?) beszéli folyékonyan a win apit. A többi nyelvben külön struktúra/type/egyéb dolgok(pl. konstans/enum) kellenek hozzá. Valamint azért van olyan, amilyen funkciót mégsem lehet közvetlen win api hívással megejteni, vagy nagyon körülményesen. Pl. a ROT-ot elég körülményes VBA-ban lekérdezni .
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz martonx #15935 üzenetére
Azért C#-ban nem olyan könnyű "office cuccokat töcögtetni.". Főleg ha verziófüggetlenül szeretnéd birizgálni. Mert ha felveszed a references közé, akkor az verziófüggő(csak arra a verzióra tudod használni, amit felvettél a references közé). Ha Office alkalmazásokat akar programnyelvben birizgálni, akkor én a Vb.Net-et ajánlanám Neki.
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
-
pmonitor
aktív tag
válasz pmonitor #15970 üzenetére
Kipróbáltam én is. Csak Vb.Net-ben. 17 mega plusz, viszont nem kell hozzá office. Elég szokatlan a kezelése.
A ".xls" file esetén "System.IO.FileFormatException: A fájl sérült adatokat tartalmaz." kivételt dob.
Ezektől függetlenül ez is egyfajta választás lehet, ha régi dokumentumokat nem kell kezelni.http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz martonx #15973 üzenetére
Most ismerkedem vele. A jelszóval védett ".xlsm"-re van valami megoldás? Mert az én megoldásom azt is tudja.
>Akkor most már igazi programozó nick-ké avanzsáltam?
Igen.
Egyébként pont az ilyen diskurzusokat hiányoltam, amik mintakódokkal tarkítottak.
[ Szerkesztve ]
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz martonx #15975 üzenetére
Ha azt mondtam, hogy a win api-t a C/C++/Free pascal/Delphi beszéli folyamatosan, akkor erre meg azt mondom, hogy az office alkalmazásokat meg a VBA/Vb.Net beszéli folyamatosan(bár más nyelvben is meg lehet csinálni). Ha szeretnék nyitni 1 Excel munkafüzetet, aminek az első munkalapjának első cellájába akarom írni az "asdfgh" szöveget, akkor aszondom, hogy:
Dim exapp As Object = CreateObject("Excel.Application")
exapp.Visible = True
exapp.Workbooks.Open("d:\MunkaFüzet1.xlsm").WorkSheets(1).Range("A1") = "asdfgh"És ha a "d:\MunkaFüzet1.xlsm" file jelszóvédett, akkor be is kéri a jelszót megnyitáskor(mondjuk itt hibakezelés nincs, tehát ha rossz jelszót ad meg a user, akkor elszáll).
Egy ilyen sor kódtól:
exapp.Workbooks.Open("d:\MunkaFüzet1.xlsm").WorkSheets(1).Range("A1") = "asdfgh"
a C# befonná a szemöldökét[ Szerkesztve ]
http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
-
pmonitor
aktív tag
válasz pmonitor #15976 üzenetére
Az ezzel ekvivalens kód C#-ban így nézne ki:
Type ExcelType = Type.GetTypeFromProgID("Excel.Application");
object excelObject = Activator.CreateInstance(ExcelType);
ExcelType.InvokeMember("Visible", BindingFlags.SetProperty, null, excelObject, new object[1] { true });
object books = excelObject.GetType().InvokeMember("Workbooks", BindingFlags.GetProperty, null, excelObject, null);
object book = books.GetType().InvokeMember("Open", BindingFlags.InvokeMethod, null, books, new object[] { "d:\\Munkafüzet1.xlsm" });
object wrksheet = book.GetType().InvokeMember("Worksheets", BindingFlags.GetProperty, null, book, new object[] { 1 });
object rng = book.GetType().InvokeMember("Range", BindingFlags.GetProperty, null, wrksheet, new object[] { "A1" });
object rng0 = book.GetType().InvokeMember("Value", BindingFlags.SetProperty, null, rng, new object[] { "asdfgh" });Azért nagy különbség.
Mondjuk ezekhez kell az office, meg csak kindózon működnek.http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!