-
Fototrend
Új hozzászólás Aktív témák
-
Sanyix
őstag
Van egy ilyen js, hogy itt hozz a létre
row.insertCell(1).innerHTML="<input type='text' value="+month+" onblur=refresh()>";tbl.rows[i].cells[1]... és itt kéne kivenni belőle a value-t.
tbl.rows[i].cells[1].innerHTML ugye annyit hoz ki, hogy <input type="text"...
tbl.rows[i].cells[1].innerHTML.value nemjó
tbl.rows[i].cells[1].value sem jó.
Hogy lehet megszerezni a value-t?szövegértelmezés, az ÉRTELMEZÉS a fontos, mert az olvasás mindenkinek megy, de az ÉRTELMEZÉS már komoly probléma a magyaroknál. Gondold ezt át mielőtt marhaságot írsz...
-
-
ArchElf
addikt
válasz ArchElf #3754 üzenetére
A value (kis "v"-vel) ment végül..
<html><body>
<table id ='ttt'><tr>
<td><input type='text' value='valami11'/></td>
<td><input type='text' value='valami12'/></td>
</tr><tr>
<td><input type='text' value='valami21'/></td>
<td><input type='text' value='valami22'/></td>
</tr></table>
<br/>
<input id ='barmi' type='text' value='aaa'/>
<script type="text/javascript">
tbl = document.getElementById("ttt");
bb = document.getElementById("barmi");
a1 = tbl.rows[0].cells[0].childNodes[0];
bb.value = a1.value;
</script>
</body></html>Itt szoktam próbálgatni
AE
[ Szerkesztve ]
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
Scroll Lock
tag
Hello!
A Basic elvileg egy interpretált nyelv, vagyis mindig szüksége van a futtatási környezetre? Mert az előbb létrehoztam az FBIDE (free basic) fejlesztői környezettel egy példaprogramot
(.exe kiterjesztéssel) és a basic eltávolítása után lefutott. Nem kellene, hogy kérjen valamilyen keretrendszert? Vagy pusztán arról lenne szó, hogy az interpretált programozási nyelveket is lehet közvetlenül gépi kódba fordítani? Ha az utóbbi eset állna fenn, a gép akkor is utasításonként értelmezi az adott fájlt, nemde? További kérdéseim itt találhatók: [link].
Köszönöm a válaszadóknak előre is. -
ArchElf
addikt
válasz Scroll Lock #3757 üzenetére
Az lenne a kérdésem, hogy a Microsoft .Net keretrendszert körülbelül úgy lehetne elképzelni mint a Java virtuális gépet? Igen.
Utóbbinál az alapvető cél a platform függetlenség, a .Net keretrendszernél pontosan mi volt a célja a fejlesztőknek? Hiszen a .Net csak Windows-on futtatható. Valóban, bár van linux alatt is .NET környezet (pl. a mono), ezt természetesen nem a MS fejleszeti, és nem is 100% kompatibilis az MS kód a Mono kóddal... Bár általában az egyszerűbb források mindkét rendszeren gond nélkül lefordíthatók (és bug-mentesek).
A másik kérdés, hogy a java-nál mi célja a bytecode-nak, amikor a virtuális gép a java forráskódból is készíthetne gépi kódot, nem? Épp a platformfüggetlenség miatt. Ha mond neked valami a gépi kód (processzor típusonként eltérő), a bit-order (úgyszintén), akkor könnyen belátható, hogy a gépi kód nem hordozható, de egy platform független (kvázi szabványos) byte-kód az. A gond csak az, hogy meg kell írni az értelmezőt az adott célrendszerre.
A 3. kérdésem: interpretált nyelvek esetében, hogyan értelmezhetem azt, hogy a fejlesztői környezet gyakran azonos a futtatási környezettel? Hiszen az utóbbinak nem kell meg nyitva lennie, ha az előbbi már telepítve van. Sok esetben maga a fejlesztői környezet is építkezik a futtatókörnyezetből (a környezet telepítése nélkül a fejlesztőkörnyezet sem működik): ablakos megjelenítés, objektumok kezelése, stb. Természetesen ezekben a nyelvekben nem a fejlesztőkörnyezet interpretálja a létrehozott köztes kódot, hanem a "keretrendszer" (köztes réteg). Amúgy javat és .net-et is lehet notepad-ban programozni, ha a szükség úgy hozza, mivel a keretrendszer tartalmazza a fordításhoz szükséges összes (!) sztenderd komponenst. Csak baromi macerás, mivel mindent fejből kell tudni, nincs intellisense, nincs csillivilli debugger.
AE
[ Szerkesztve ]
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
VladimirR
nagyúr
belefutottem agy erdekes problemaba C#-ban a GetPixel methodus hasznalatakor
adott egy alkalmazas (jatek), amibol szeretnek innenn-onnan pixel ertekeket kiolvasni
tobbnyire megy is minden rendesen, viszont az egyik gepen (vista) attol fuggoen, hogy hol talalhato az ablak az asztalon, nem mindig sikerul a muvelet, a GetPixel nullat (0) ad vissza
nem kozvetlen az ablakbol olvas a getpixel, hanem BitBlt-vel atmasolom a megfelelo reszeket egy memoriaban CreateDC-vel letrehozott DC-be, s onnan olvas a GetPixel (valamiert igy lenyegesen gyorsabb, mintha az eredeti ablakbol olvasnek)
amennyire meg tudom mondani, ugy nez ki a dolog, hogy vizszintesen annyit latok az ablakbol, amennyi az ablak X koordinataja
vagyis ha az ablak az asztal bal szelen kezdodik, semmit nem latok belole, viszont ha kihuzom az asztal feleig, akkor fel asztal szelesseget latok beloleaminek meg jelentossege lehet, hogy az ablakot (jatek) GameGuard vedi...tobbnyire sikertelenul
mas gepeken (vista, xp vegyesen) rendesen mukodik a program, nincs meg a fenti hibajelenseg
van barmi otletetek arra vonatkozoan, mi okozhat ilyen jelenseget?
[ Szerkesztve ]
-
ArchElf
addikt
válasz VladimirR #3759 üzenetére
Szerintem a DirectX-el veszhet össze (AERO be van kapcsolva?) Esetleg a videokártya vezérlőjével - de mindkettő csak tipp. Próbáltad, hogy az új DC-re másolt területet megjeleníted?
Lehet, hogy valamiért a desktop egyes részeit overlay-el teszi ki...AE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
sghc_toma
senior tag
válasz VladimirR #3759 üzenetére
a kerdesedre nem tudok valaszolni, szerintem meg sose hasznaltam a CreateDC-t.. ha egy ablak kepet kell blittelni egy memo-ban levo DC-be, azt igy szokas csinalni, esetleg probald ki, hatha jo lesz:
HDC hdcWnd = GetWindowDC(hWnd); // or GetDC to get a DC for just the client area
HDC hdcMem = CreateCompatibleDC(hdcWnd);
HBITMAP hBmp = CreateCompatibleBitmap(hdcWnd, w, h);
HBTIMAP hOldBmp = (HBITMAP)SelectObject(hdcMem, hBmp);
BitBlt(hdcMem, 0, 0, w, h, hdcWnd, 0, 0, SRCCOPY);
// ...
SelectObject(hdcMem, hOldBmp);
DeleteObject(hBmp);
DeleteDC(hdcMem);
ReleaseDC(hWnd, hdcWnd);in asm we trust
-
sghc_toma
senior tag
válasz VladimirR #3762 üzenetére
ok, azt hittem, valahogy CreateDC-vel csinaltad CreateCompatibleDC helyett.. mukodnie kene, nem vagom, miert hasal el a GetPixel..
esetleg megprobalhatod a GetDIBBits fv-t..// off: ez az RFC 1149 nagyon allat
in asm we trust
-
VladimirR
nagyúr
válasz sghc_toma #3763 üzenetére
"ok, azt hittem, valahogy CreateDC-vel csinaltad CreateCompatibleDC helyett."
ez azert lehet, mert fentebbi post-omban baromsagot irtamtobbet is, mert rajottem idokozben, hogy nalam sem mukodik rendesen, csak mivel 1920*1440-es az asztal - raadasul ketto is van belole - az ablak meg 1024*768-as, nem tunt fel elsore, meg akkor sem, mikor kimondottan ezt neztem
a miert amugy szerintem abban keresendo, hogy a gameguard probalja megakadalyozni, hogy en ki tudjam olvasni a pixel-eket, csak azt nem ertem, hogy xp-n akkor miert mukodikes pont most kezdtem el en is azon filozni, hogy a bitmap-rol olvasom ki az ertekeket, bar en a GetBitmapBits-et hasznalom, de tokeletesen mukodik (meg a sebessegen kell csavarni egyet, mert jelenleg minden pixelkiolvasas elott masolok buffer-be es az nem tul gazdasagos, mert kepenkent lehet 1-2 ezer pixel is)
[off]par eve megprobaltak implementalni is, csodas eredmeny szuletett:
ping -i 900 10.0.3.1
PING 10.0.3.1 (10.0.3.1): 56 data bytes
64 bytes from 10.0.3.1: icmp_seq=0 ttl=255 time=6165731.1 ms
64 bytes from 10.0.3.1: icmp_seq=4 ttl=255 time=3211900.8 ms
64 bytes from 10.0.3.1: icmp_seq=2 ttl=255 time=5124922.8 ms
64 bytes from 10.0.3.1: icmp_seq=1 ttl=255 time=6388671.9 ms
--- 10.0.3.1 ping statistics ---
9 packets transmitted, 4 packets received, 55% packet loss
round-trip min/avg/max = 3211900.8/5222806.6/6388671.9 ms[/off]
[ Szerkesztve ]
-
sghc_toma
senior tag
válasz VladimirR #3764 üzenetére
ehh, en meg nem vettem figyelembe, hogy GG vedi a cuccot.. rakerestem gyorsan, valoban hook-olja a GetPixel-t.. az, hogy XP-n mukodik, bug-nak nez ki; sajnos kedden numanal zh, nincs tul sok idom, pedig szivesen beleneznek a lelkebe a draganak..
GetBitmapBits ha jol emlekszem deprecated, bar az teny, hogy joval baratsagosabbnak nez ki (2 - vagy 3?, nem emlekszem - argumentum vs sok), mint a GetDIBBits..
RFC 1149 implementacio: no comment
in asm we trust
-
VladimirR
nagyúr
válasz sghc_toma #3763 üzenetére
nagyon szepen koszonom a segitseget., jobb, mint volt (a getpixel kilovesevel megszunt egy masik problema is)
volna meg egy kerdesem ezzel kapcsolatban, ha nem tul nagy pofatlansag
arrol lenne szo, hogy kuldenek a programnak mindenfeleket, de elsosorban billentyuleuteseket es egermozgast, kattintasokat
mindkettohoz a SendMessage funkciot hasznalom, elobbi meg egesz jol, miota nem WM_KEY{DOWN,UP} es WM_SYSKEY{DOWN,UP} uzeneteket kuldok, hanem helyettuk WM_IME_KEY{DOWN,UP}, viszont az egermozgas es kattintasok kuldese nem akart menni
az lenne a kerdes tehat, hogy van-e alternativ mod egermozgas es kattintas kuldesere, esetleg mas uzenettel (jelenleg a WM_MOUSEMOVE, WM_LBUTTON{DOWN,UP} es WM_RBUTTON{DOWN,UP} uzeneteket hasznalom)vegulis nem egeto problema, valahol neten talaltam egy tippet, hogy tegyem a user32.dll-t a progi konyvtaraba es a DllImport-nal "./user32.dll"-kent hivatkozzak ra, akkor nem hat ra a gameguard hook-ja, s valoban, mukodik is, mint az alom, de szebb lenne, ha erre sem lenne szukseg
barminemu otletet szivesen veszek ^^
-
sghc_toma
senior tag
válasz VladimirR #3766 üzenetére
nincs mit, orulok, hogy sikerult megoldani..
par eve egy havernak monyakoltam ossze X3-hoz valami kis cheat-et, ahhoz a keybd_event, es a mouse_event API-kat hasznaltam.. azota ezeket felvaltotta a SendInput.. ezeket meg lehetne probalni, bar vegso soron ok is csak uzeneteket pakolnak a message queue-ba..
az altalad probaltakon kivul mas egeresemeny, ami mozgast vagy klikket jelez, nincsen.. (illetve vannak a nonclient valtozatok, de az most nem jatszik)
a gaz az, hogy siman elkezelheto, hogy az alkalmazas mondjuk DirectInput-on keresztul kezeli le a bill/eger esemenyeket*, es akkor nem sokra mesz a SendMessage/PostMessage fv.-ekkel..
a sajat user32.dll trukk tetszik nem ismerem a GameGuard-ot, de ennel egyszerubb anti-hook megoldast nem tudok elkepzelni..
esetleg meg megoldas lehet a megfelelo DirectX API fv-ek hook-olasa (szerintem Detours-szal megoldhato), de annak kideritese, hogy miket kene hook-olni, eleg korulmenyes..
ha meg eszembe jut valami esetleg, irok...
* illetve bill-t ebben az esetben nem, hiszen mukodik a SendMessage...
in asm we trust
-
VladimirR
nagyúr
válasz sghc_toma #3768 üzenetére
sajna sem a sendinput (ezt hasznaltam korabban, ezt mar a legelejen* megfogta a gameguard - pontosabban felismerte, hogy valami nem gombolyu es megszakitotta a kapcsolatot), sem a {mouse,keybd}_eventnem jatszik (ezt is eszreveszi), eddig legtovabb a sendmessage-el jutottam, akkor ugy tunik, marad ez a megoldas, vegulis csak egyszer kell egy gepen megejteni...
megegyszer kosz*: elotte hackshield-et hasznaltak, ami nem tudom, hogy gyakorlatban mire volt jo, de barmit probaltam, minden mukodott
ArchElf: ahhoz erteni kellene hozza ^^
-
sghc_toma
senior tag
válasz VladimirR #3769 üzenetére
hmm, azt hiszem, az elozo hsz-edben felreertettem valamit: most akkor ha masolod a user32.dll-t, akkor az egermozgatas is megy? ha igy van, akkor a hsz-em DirectInput-os resze nyilvan tokfoloslegesen van ott
nem hagyott nyugodni a dolog, keresgeltem.. talaltam neten egy listat a GG altal hook-olt API-krol.. ezek kozt ott van ugye a SendMessage es a PostMessage, de nincs koztuk a PostThreadMessage es a SendNotifyMessage.. elkepzelheto, hogy ez a ket API hasznalja a masik kettot, es akkor ugyanugy nem mukodnek, de egy probat meger szerintem..
PostThreadMessage kicsit problemas, mert nem tudod, melyik szalnak kell kuldeni az uzenetet.. erre csunya, de valoszinuleg mukodo megoldas, ha felsoroltatod az osszes szalat, es mindnek kikuldod:DWORD pid;
GetWindowThreadProcessId(hWnd, &pid);
HANDLE hThreadSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, pid);
if (hThreadSnapShot != INVALID_HANDLE_VALUE)
{
THREADENTRY32 te;
te.dwSize = sizeof(THREADENTRY32);
if (Thread32First(hThreadSnapShot, &te))
{
do
{
if (te.th32OwnerProcessID == pid)
{
PostThreadMessage(te.th32ThreadID, WM_KEYDOWN, VK_RIGHT, 0);
}
} while(Thread32Next(hThreadSnapShot, &te));
}
CloseHandle(hThreadSnapShot);
}btw, milyen jatek? a kedd vizsga utani resze pihi, lehet ranezek..
in asm we trust
-
VladimirR
nagyúr
válasz sghc_toma #3770 üzenetére
igen, masolva az eger is ment
es most mar megy masolas nelkul is, a SendNotifyMessage hibatlanul mukodni latszik, ujabb hatalmas koszoneta jatek amugy a Rappelz, egy ingyenes, n+1. koreai (mintara keszulo) mmorpg
magat a jatekot mar reg meguntam (nem nehez, egy ido utan rendkivul monoton), viszont most jott egy nagyobb frissites hozza, ilyenkor mindig ranezek, igazitok picit a bot-on -
-
[LOLDMA]
csendes tag
ÜdvÜdv!
Lenne egy olyan gyors kérdésem, hogy a Hardverapro milyen technikával tárolja azt, hogy bejelentkeztünk-e, vagy sem, vagyis azt szeretném megoldani, hogy delphi-vel lekérjem a privát üzeneteimet.
Köszönöm
-
VladimirR
nagyúr
válasz [LOLDMA] #3774 üzenetére
cookie-val, megpedig az identifier elnevezesuvel
roviden ket lehetoseged is van:
1: bejelentkezel ugy, hogy a ne leptessen ki es az ip ellenorzes tiltasa mezo is pipalva van, megnezed a bongeszoben, hogy mi az identifier cookie aktualis erteke, s azt elkuldod a programban a http keresekkor (ez csak addig mukodik, mig nem jelentkezel ki)
2: a bejelentkezo form alapjan csinalsz egy http kerest, amivel bejelentkezik a program, s a valaszkent kapott identifier cookie erteket hozz\acsapja a tovabbi http keresekhez -
kalaposgergo
csendes tag
fuha.
-
F-ECT$
titán
Algoritmus kérdés. Kellene írni egy PL/SQL eljárást (bár ha az elv megvan, akkor abból kód már könnyen van), ami a következőt tudja. Adott 2 tábla:
-UTAZÁS(indulási_idő, érkezési_idő), ahol indulás<érkezés
-MUNKA(munka_kezdete, munka_vége), ahol kezdete<végeKi kellene számolni minden utazásra, hogy mennyi volt tisztán az utazási idő, és mennyi volt az, ami alatt folyt valamilyen munka. Nincs semmilyen kikötés, tehát egy adott időpillanatban végtelen számú munka is folyhat. A munkák kezdődhetnek egy utazás előtt, alatt, után és véget is érhetenek bármikor.
Példa:
-UTAZÁS 1: 8:00 - 11:00
-MUNKA 1: 7:00-7:30
-MUNKA 2: 7:15-8:15
-MUNKA 3: 8:00-10:30
-MUNKA 4: 10:45-11:15Ez esetben a 3 órás utazás tisztán utazási ideje 0:15 (10:30-10:45), és az az idő, ami alatt folyt munka: 2:45. Persze ha lenne egy MUNKA 5: 7:00-12:00, akkor ez a két szám 0:00 és 3:00 lenne.
Valami ötlet? (Elképzelésem már van, de nem akarok senkit befolyásolni. Ha nem lenne ötlet, akkor leírom, és azon már csak finomítani kell majd.)
Dive ever, work never.
-
Jester01
veterán
Ha tudjuk, hogy az idők perc felbontásúak, akkor minden utazáshoz csinálni kell egy tömböt (vagy táblát) ahol percekre van bontva. Majd az összes munkát ki kell törölni. A végén pedig összeszámolni a sorokat, az lesz a tiszta utazás.
Persze a memóriatakarékosabb megoldás egy intervallumhalmaz-kezelő megírása, de az macerásabb
Jester
-
[LOLDMA]
csendes tag
Jön egy utazás rész. Megnézzük, hogy mikor kezdődik(vált:e), mikor van vége(vált:v), és hogy mennyi ideig tart (vált: o).
Megkeressük az első munkát(eleje:me, vége:mv), aminek az eleje vagy a vége belecsúszik az [e,v] intervallumba.Ha az me nagyobb mint az e és az mv kisebb mint a v akkor o-ból kivonjuk az mv-me -t
Ha az me kisebb mint az e és az mv kisebb mint a v akkor oból kivonjuk az mv-e-t
Ha az me nagyobb mint az e és az mv nagyobb mint a v akkor o-ból kivonjuk a v-me-t
Ha az me kisebb mint az e és az mv nagyobb mint a v, akkor o=0;ezek után e-t állítsuk mv-re és menjünk a köv munkára, addig amíg el nem érünk az első olyan munkához, aminek az eleje később van mint az utazás vége, és a feltételt azon is futtassuk le.
o a tiszta utazási idő.
gumikacsás gyilkolós. szerintem.
[ Szerkesztve ]
-
[LOLDMA]
csendes tag
Jajj nemjó. megkeressük az első olyan munkát, aminek az eleje vagy a vége beleesik a megadott intervallumba, vagy az eleje kisebb mint az utazás eleje, és a vége nagyobb mint az utazás vége. akkor értelemszerűen 0 a tiszta utazási idő. ez a megoldás csak akkor alkalmazható, ha időrendben vannak a munkák.
-
F-ECT$
titán
válasz [LOLDMA] #3781 üzenetére
Példa volt, nincs időrendben semmi, de az ORDER BY segít
Én arra gondoltam, hogy egyesével végigmegyek az UTAZÁS táblán, kiválogatom hozzá azokat a MUNKÁKAT, amik ez alatt történnek, 4 ilyen eset lehetséges:
-UTAZÁS magába foglalja a MUNKÁT,
-MUNKA magába foglalja az UTAZÁST,
-MUNKA előbb kezdődik, mint az UTAZÁS és az UTAZÁS alatt ér véget,
-MUNKA az UTAZÁS alatt kezdődik és utána ér végetEnnyi biztos. A gond akkor kezdődik, hogyha sok 1-es típus van, mert az elkezdi feldarabolni az UTAZÁS intervallumát, és valahogy dinamikusan lehet csak ezt kezelni szerintem, az meg rohadt lassú lesz. Szerintem a te megoldásod is itt hasal el, de javíts ki ha tévedek.
Jester01: Ilyen intervallum kezelésre tudsz konkrét pédát mutatni?
[ Szerkesztve ]
Dive ever, work never.
-
Jester01
veterán
Pont arra gondoltam amire te.
Ahhoz, hogy ne legyen lassú az intervallumlistát lehet például bináris fában tartani. De persze adatbázisról lévén szó, ezt rá lehet bízni az adatbáziskezelőre is, index formájában.Amúgy visszatérve az első javaslatomra, még ha másodperc pontosságról is van szó és mondjuk maximum 10 napos utazásról az még mindig csak 24*3600*10/8=108kByte adat.
Jester
-
[LOLDMA]
csendes tag
nah, énis erre gondoltam. hogyha ki tudod választani, hogy mely munkák vannak az utazás időtartama alatt, akkor máris egyszerűbb.
-Nos, ugye csak annyi kell, hogy mennyi volt a tisztán utazási idő, hogy mikor volt, az nem kell.
-A munkák overlappolhatják egymást? szóval lehet egyszerre két munka is egy időben? -
orbano
félisten
lehet hogy most késő van és hülyeséget írok, de szerintem az alábbi működne:
1. lépésben vágnék: minden munkát feldarabolnék az utazások határainál, hogy csak olyan munkadarabjaim legyenek, amik egy adott utazásba beleestek.
2. készítenék egy halmazt, amibe a tól-ig dátumokat beleteszem (megcímkézve nyilván, hogy tudjam mihez t artoznak, ráadásul tíusosan, azaz megkülönböztethetően a tól és az ig határokat)
3. készítenék egy vermet (inkább egy sima halmaz talán jobb), vagy mittomén valami spéci adatszerkezetet, amibe pakolászom a tól dátumokat azaz a munkák kezdetét.
4. elkezdem az algoritmust:
-végigmegyek a tól-ig dátumokon növekvő sorrendben, a műveleti szabályok:
a) Első lépésben a halmaz üres, a kezdődátum az utazás kezdete
b) Ha a halmaz üres, létrehozok egy új "munkanélküli" intervallumot, és megadom kezdőértéknek az aktuális dátumot (ez kezdetben a kezdődátum)
c) ha tól-t találok, beteszem a halmazba, és lezárom az éppen aktív munkanélküli intervallumot és eltárolom az eredményt adó változóba
d) ha ig-et találok, kiveszem a tól párját a halmazból. ha nincs benne, az hiba, mert előfeltétel hogy a feladat előbb elkezdődjön, minthogy végetérne (ezt meg is adtad)
5. a végén kiszedem az eredmények közül a 0 hosszú intervallumokat.
e) utolsó elemnek az utazás végét veszem, ezzel lezárhatom az esetlegesen aktív munkanélküli intervallumot.Példa, az időt reprezentálják egész számok:
munka1: 5..10
munka2: 15..20
utazás: 5..25tehát az intervallumok, * az igeket jelöli
(5,)5,*10,15,*20,(, 25)
#1: 5-ös utazáskezdet, az leső munkanélküli időszak kezdete 5
#2: 5-ös tólt találok, a munkanálküli intervallumot lezárom (5..5) és elteszem. vagy nem teszem mert 0 hosszú, valamint felteszem a halmazba az 5-öst
#3: 10-es záró, kiveszem a párját, a halmazból, ami most üres lesz, tehát intervallumot nyitok 10-től.
#4: 15-ös tól intervallum, tehát zárom a munkanélküli időszakot és elraktározom (10..15)
.... innen trivi.ez olyasmi lényegében, mint a lengyel forma feldolgozása, csak kicsit spécibb, testreszabott.
A vér nem válik VAZZE!™
-
[LOLDMA]
csendes tag
aludtam rá egyet, és rájöttem. Az én megoldásom nem darabolja az utazás intervallumot, hanem az elejéből mindig befele húz. Szóval a munkáknak kell egy order by a munka kezdete, és akkor aszt mondod hogy szelektálni tudod azokat a munkákat amik az adott utazáshoz tartoznak.
a, UTAZÁS magába foglalja a MUNKÁT,
b, MUNKA magába foglalja az UTAZÁST,
c, MUNKA előbb kezdődik, mint az UTAZÁS és az UTAZÁS alatt ér véget,
d, MUNKA az UTAZÁS alatt kezdődik és utána ér végetb, eset ekvivalens, a tiszta utazási idő 0.
a többi eset nem ily egyszerű. Kell két változó, ami az aktuális utazás intervallumra mutat (amit éppen vizsgálunk). Kell még egy változó, amibe belerakjuk még az elején az egész utazás időtartalmát (legyen t változó, t legyen egyenlő utazas vege-utazas eleje). Egyből az elején meg kell adni az éppen aktuális utazás intervallum elejét (e legyen egyenlő utazas eleje) valamint végét (v legyen egyenlo utazas vege)Namármost, szépen sorban végigmegyünk a munkákon.
az a, esetben a t változóból kivonjuk a munka vege-munka eleje-t, azaz a munka időtartalmát, valamint az e változót átállítjuk a munka végére.
c, esetben ugye a munka előbb kezdődik, mint az aktuális utazás intervallum (de később mint az előző munka) szóval ott csak annyit kell kivonni, amennyivel belelóg a még tiszta utazási időbe. Magyarán kivonjuk t változóból a munka vege-e -t. Ezutan e-t átállítjuk a munka vege-re.
d, esetben, mivel ugye sorrendben vannak a munkák, ez lesz az utolsó, itt a munka elejétől az utazás végéig levő intervallumot kell már csak kivonni, szóval t változóból kivonjuk a v-munka eleje. És voálá. ami marad a t-ben, az a tiszta utazási idő. Na most rohanok suliba, ígyis elkések. -
orbano
félisten
válasz [LOLDMA] #3789 üzenetére
ezt a kivonás dolgot nem egészen értem. ha elkezded kivonogatni az eredeti intervallumból a mnkák intervallumait, akkor például megeshet, hogy több kis intervallumod marad. skalárisan pedig nem vonhatsz ki, mert vannak átfedő intervallumok. ergo az algoritmus még nem teljes, alapesetben egy rekurzóra van szükség:
legyen elemi művelet az utazás intervallumából egy munka intervallumának kivonása. alapesetben ezt a műveletet meghívod minden, az úttal nem diszjunkt intervallumra. ennek a műveletnek az eredménye egy intervallum _lista_, ami az utazás még munka nélkül telt darabjait alkotja. erre a listára megint meg kell hívni az összes vele konjunkt munka kivonásának műveletét. ha egy ilyen művelet során ez a lista nem változik, fix ponthoz értünk, terminálhatjuk a programot.
ennek a programnak véleményem szerint bonyolultabb a szerkezete az általam felvázoltnak. persze sql alatt nem tudom melyik oldható meg könnyebben.A vér nem válik VAZZE!™
-
moboHEAD
csendes tag
Szervusztok!
Tanácstalan vagyok egy témában: keresek nyelve(ke)t és környezetet, amivel a következőket lehetne megvalósítani:
* webes megjelenés / web-service
* mobilon való használat, akár offlány módban is
(preferált sorrend: BB, Android, S60, WM)
* windows alapon működő fejlesztői környezet
* dinamikus, datadriven tartalmak
* grafikai lehetőségek (fancy, dinamikus grafikonok)
* üzleti vonal
* kerülném a különböző nyelvek kapcsolatát (pl php + java + flash torzulásokat)Plusz, mivel ebben sajnos alapokról kellene kezdenem, fogódzkodót is keresek.
Előre is köszönöm a javaslatokat!
üdv,
[ Szerkesztve ]
mH.
-
[LOLDMA]
csendes tag
nem intervallumokat vonogatunk ki. időt. khm hogy fogalmazzam. van ugye hoyg az utazás mikor kezdődik, és mikor végződik. ennek az időtartamát eltároljuk t változóban (a vége mínusz az eleje, vagy valami hasonló módon. pl t=3600 akkor mondjuk mp alapon tárolunk, akkor 1 órás az út). és mindig a munkák időtartamát vonogatjuk ki (munka eleje: 8 óra vége 8 óra 15 perc akkor az 8:15-8=15 perc ami 15x60 mp. és ezt vonjuk ki).
Igazából a megoldásom egyszerű, ha valaki megérti esetleg ha nagyonnemegy, akkor videóval elmagyarázom
-
orbano
félisten
válasz moboHEAD #3791 üzenetére
"kerülném a különböző nyelvek kapcsolatát"
ezt azért nehéz lesz szerintem. a M$-vonal a webformssal vagy hogyishívjákkal ezt a vonalat követi, de a kompatibilitást akkor bukod.
ezen felül az offilne mód és a webes, web servicet igénybevevő megjelenés és struktúra ütik egymást véleményem szerint.
valamit tudsz arról írni, hogy milyen rendszert kellene ezzel megvalósítani?
A vér nem válik VAZZE!™
-
orbano
félisten
válasz [LOLDMA] #3792 üzenetére
csak mivel vannak párhuzamosan végzett munkák, ezért buktad.
pl ha egy munkád 8-tól tart kilencig, egy másik pedig 8-tól 10-ig, akkor máris 3 órát vontál ki 2 helyett. muszáj intervallumokkal számolnod, nem úszod meg. persze akkor nem muszáj, ha az algoritmusod előtt egyszerüsíted az intervallumokat, először is vágod őket az utazások szerint, majd diszjunkt uniókat képzel a munkák intervallumaiból. de ez lényegében hasonló algoritmust fog adni, mint az előzőek, csak más visszavezetéssel.A vér nem válik VAZZE!™
-
moboHEAD
csendes tag
Köszi! Értelek.
Az offline mód és a webservice párosítás itt annyit jelent, hogy időszakosan a nyúzer leszed adatokat, azokkal bűvészkedik, és alkalmasint visszaküldi, ha akarja. Azaz nem folyamatos, webes, online kapcsolaton dolgozik.A cucc egy "ügynök"-hálózat támogatásának gondolata köré épül. Megkapják a feladatokat leosztva, amit le is passzolhatnak. Illetve a napi forgalomról, egyéb adatokról grafikonhoz kellene, hogy adatot kapjanak, amit "pivot" szerű módon forgathatnának, azaz nem minden egyes alkalommal képekben kapják meg a kimutatást, hanem pl. xml-ben.
Röviden ennyi.
mH.
-
F-ECT$
titán
No meglett a megoldás, ha jól látom akkor 3-an dolgoztunk rajta, és mindhármunk ötleteiből van benne.
A lényeg:
1. Egyesével végigmegyek az UTAZÁS táblán, kiválogatom hozzá azokat a MUNKÁKAT, amik ez alatt történnek. (A már emlegetett 4 alapeset).
2. Ha találok egy ilyet, akkor rögtön alkotok egy új intervallumot, amibe az UTAZÁS és a MUNKA közös részének eleje és vége kerül. (EXTEND-elgetem ezt az intervallum listát, amíg kell.)
3. Ezután végigmegyek az így képzett intervallum listán, és megpróbálom ezeket összevonni. (Itt is a 4 alapeset lehetséges.)For I In 1..lista_hossza Loop
For J In 2..lista_hossza Loop
<Ha I és J összevonható, akkor összevonom őket. J-be kerül az összevont intervallum, és megjegyzem, hogy I-t a továbbiakban nem kell figyelembe venni. >4. Az így képzett új intervallum lista már diszjunkt időintervallumokat tartalmaz, tehát összeadható és megadja a MUNKA és UTAZÁS közös részét.
Végeredmény: 1600000 sorra kb 10 perc alatt lefut.
Dive ever, work never.
-
orbano
félisten
gart! bár azon a 10 percen szerintem még van mit finomítani. főleg mert ez az összevonogatósdi egy négyzetes algoritmus, és azért az intervallumosdira van ennél kisebb műveletigényű is (az első megoldásom kb. lineráis, mert ott nem kell egymással hasonlítgatni az intervallumokat). persze ha megfelelő a 10 perc akkor kár vacakolni.
A vér nem válik VAZZE!™
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- EDIFIER R1700BTS hangfal pár makulátlan, új állapotban, 2 év hivatalos garanciával, alkalmi áron
- LG OLED55B23LA 2 Év GYÁRI GARANCIA
- Apple iPhone XR 128GB, Kártyafüggetlen, 1 Év Garanciával
- Gamer PC , i7 12700KF , RTX 3080 Ti , 64GB DDR5 , 960GB NVME , 1TB HDD
- Intel PC , i5 8500 , 1660 6GB , 32GB DDR4 , 512GB NVME , 500GB HDD
- D-Link DIR-842 kétsávos, Gigabites router - Foxpost az árban!
- H96 MAX RK3318 TV okosító - 2/16 GB - Új!
- MacBook Pro 13" 2016, i5 2.0GHz, 8GB Ram, 256GB SSD - rossz saját képernyővel, occón!
- Logitech G502 X vezetékes gaming egér, fehér, akár 25600 DPI
- Garett GRC Maxx okosóra, fekete, Android és iOs kompatibilis
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen