- Kormányok / autós szimulátorok topicja
- Vezetékes FEJhallgatók
- iPad topik
- Nyomtató topik
- Azonnali VGA-s kérdések órája
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Amlogic S905, S912 processzoros készülékek
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Milyen egeret válasszak?
Hirdetés
-
Retro Kocka Kuckó 2024
lo Megint eltelt egy esztendő, ezért mögyünk retrokockulni Vásárhelyre! Gyere velünk gyereknapon!
-
Elden Ring - Shadow of the Erdtree teszt
gp Több, mint két évet kellett várni az Elden Ring első, és valószínűleg egyetlen kiegészítőjére. Megérte vajon a várakozást?
-
Computex 2024: Ez a mimikás robot valójában egy 65 wattos GaN gyorstöltő
ma A Ugreen Nexode RG fekete és lila színben cukiskodik, és három eszközt is tölt egyszerre, ha kell.
Új hozzászólás Aktív témák
-
Des1gnR
őstag
Sziasztok!
Egy olyan program írásába kezdtem bele ami egy weboldal forráskódját kéri le. Ez egyszerű is lenne, ha nem kellene belépni az oldalra, de ami még ennél is nagyobb gond az-az, hogy az oldal beléptetés után átirányít a kezdőlapra, így eredményként a kezdőlap forráskódját kapom meg.
Hogyan érhetném el, hogy azt a forráskódot kapjam amire szükségem van?
ForráskódA segítséget előre is köszönöm
Dell G3 3779 || Samsung S23+ || Samsung Watch 5 Pro || Oculus Quest 2 || Creality Ender 3 V2
-
sztanozs
veterán
válasz Des1gnR #3701 üzenetére
Forráskódot (asp, php, jsp, perl, pyton ...) nem tudod lekérni, legfeljebb a HTML-t amit a forráskód előállít.
Ha neked nem ez kell, már le is állhatsz a projekttel...[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
-
Des1gnR
őstag
válasz Des1gnR #3705 üzenetére
Közben a pastebin link valami oknál fogva megváltozott, de ez már jó lesz:
http://pastebin.com/8NQzWz4LTaláltam egy olyat, hogy req.AllowAutoRedirect = false;
Reméltem, hogy segíteni fog, de csak ezt az eredményt kaptam:
"<html><head><title>Object moved</title></head>
<body>\r\n<h2>Object moved to <a href=\"%2fETR%2fdefault.aspx\">here</a>.</h2>\r\n</body>
</html>\r\n"Valaki még tudna ötletet mondani?
[ Szerkesztve ]
Dell G3 3779 || Samsung S23+ || Samsung Watch 5 Pro || Oculus Quest 2 || Creality Ender 3 V2
-
ubid
őstag
Sziasztok !
Egy excel importert kell írnom silverlight alatt.
Elegáns megoldásként úgy gondoltam, hogy mivel 4000 soros excel állományokról van szó, amiknek a felolvasása több időt vesz igénybe, hogy háttér szálon olvasson a UI fagyása nélkül.BackgroundWorkerrel szerettem volna megoldani, azonban abba a hibába ütköztem, hogy Invalid cross-thread access hibát dob.
Egy gomb eseménye a fájl betallózása :
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Excel workbook (*.xls;*.xlsx;*.xlsm)|*.xls;*.xlsx;*.xlsm|All files|*.*";
openFileDialog.ShowDialog();
FileInfo fileInfo = openFileDialog.File;
if (fileInfo != null)
{
tbMessages.Text = "The processing may take several minutes. Please wait...\n";
btnImporter.IsEnabled = false;
DoBackGroundWork(fileInfo);
}A DoBackGroundWork metódusom így néz ki :
private void DoBackGroundWork(FileInfo f)
{
BackgroundWorker worker = new BackgroundWorker();
fileNameProperty = f;
worker.WorkerReportsProgress = true;
worker.ProgressChanged += new ProgressChangedEventHandler(worker_ProgressChanged);
worker.DoWork += new DoWorkEventHandler(worker_DoWork);
worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
worker.RunWorkerAsync();
}A lényeg pedig a DoWork eseménybe van :
void worker_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
int totalSteps = 30;
ProcessExcelSheet(fileNameProperty);
}
}Ebbe pedig az excel kezelést ez végzi : ProcessExcelSheet(fileNameProperty);
A filNameProperty egy FileInfo-t tartalmaz, amire szükség van az excel megnyitásánál.Amikor ebbe a függvénybe meg szeretném nyitni az excel-t :
dynamic workbook = excel.Workbooks.Open(File.FullName);Akkor kapom a hibát.
Amíg ez a hosszú művelet futna egy progress baron szeretném kijeleztetni hogy éppen hol tartunk, valamint ne faggyon ugye a UI.
Hogyan tudnám ezt megoldani ha nem így ? ?
-.-
-
sztanozs
veterán
Lehet, hogy a fileinfo kötve van a fileopendialoghoz és azért van a cross-thread probléma.Nem adattagként deklaráltad a fileNameProperty-t? Mivel a fő szál hozta létre az osztályt, a BGW nem tud hozzáférni ehhez. Csináld meg ez alapján.
Amúgy add át csak a full file nevet. Amúgy sem kell neked más a fileinfoból, nem is érdemes egy egész osztályt átpasszolni a BGW-nek emiatt.[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
ubid
őstag
válasz sztanozs #3713 üzenetére
nem.
A kód a következő :
BTN eseménye :
private void ImportBtnClick(object sender, RoutedEventArgs e)
{
if (AutomationFactory.IsAvailable)
{
if (InitializeExcel())
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Excel workbook (*.xls;*.xlsx;*.xlsm)|*.xls;*.xlsx;*.xlsm|All files|*.*";
openFileDialog.ShowDialog();
FileInfo fileInfo = openFileDialog.File;
if (fileInfo != null)
{
tbMessages.Text = "The processing may take several minutes. Please wait...\n";
btnImporter.IsEnabled = false;
DoBackGroundWork(fileInfo);
}
}
else
{
MessageBox.Show("Excel is not available.");
}
}
else
{
MessageBox.Show("Automation is not available.");
}
}Ez hívja ugye a DoBackGroundWork -öt :
public FileInfo fileNameProperty { get; set; }
private void DoBackGroundWork(FileInfo f)
{
BackgroundWorker worker = new BackgroundWorker();
fileNameProperty = f;
worker.WorkerReportsProgress = true;
worker.ProgressChanged += new ProgressChangedEventHandler(worker_ProgressChanged);
worker.RunWorkerAsync(fileNameProperty);
worker.DoWork += new DoWorkEventHandler(worker_DoWork);
worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
}
void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
btnImporter.IsEnabled = true;
}
void worker_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
int totalSteps = 30;
FileInfo file = e.Argument as FileInfo;
ProcessExcelSheet(file);
for (int i = 1; i <= totalSteps; i++)
{
///.......
}
}
void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar.Value = e.ProgressPercentage;
}És ugye a ProcessExcelSheet dolgozik sokáig...
Az pedig így néz ki :private void ProcessExcelSheet(FileInfo File)
{
Object missingValue = System.Reflection.Missing.Value;
bool errorHappened = false;
dynamic workbook = excel.Workbooks.Open(File.FullName);
try
{
...............[ Szerkesztve ]
-.-
-
sztanozs
veterán
Az összes objetumot, amit használsz a BGW-ben célszerű ott inicializálni.
Próbáld meg átemelni a BGW indítő függvényét egy külön osztályba (és annak egy statikus metódusába) és onnan inicializálni az összes használt osztályt/változót.JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
sztanozs
veterán
-
Karma
félisten
Akkor is elszáll, ha az excel hívásokat kikommentezed? Nekem alapjáraton fura, hogy előbb indítod el a workert, mint hogy a DoWork eseményt bekötöd. Meg egyébként ez az exception akkor gyakori, ha UI komponenseket bizgerálsz Invoke nélkül, másik szálból.
Szerk.: oké, ezesetben tárgytalan.
[ Szerkesztve ]
“All nothings are not equal.”
-
Des1gnR
őstag
válasz Jester01 #3709 üzenetére
Az volt a gond, hogy nem szerettem volna, hogy elmenjen a default.aspx-re. Közben megoldódott a probléma ennek a linken a segítségével: http://forums.asp.net/t/1798530.aspx/1
Köszönöm a segítségetDell G3 3779 || Samsung S23+ || Samsung Watch 5 Pro || Oculus Quest 2 || Creality Ender 3 V2
-
sutszi
veterán
Ha kihagyod az egész backgrounworker témát, meg az egyéb sallangot akkor a lényegi rész működik?
Mondja, Mr. Babbage, ha rossz adatokat ad meg a gépnek, akkor is jó válasz fog kijönni belőle?" Képtelen vagyok felfogni azt az értelmi zavart, ami valakit egy ilyen kérdés feltevésére késztethet. - by Charles Babbage
-
amargo
addikt
Először is ez itt mi?
[B]dynamic [/B]workbook = excel.Workbooks.Open(File.FullName);
Ezt hol láttad? ..
Object missingValue = System.Reflection.Missing.Value;
???
..
Először is nézd meg ezt.Másodszor is ennyinek kellene lennie, linkbe:
using (BackgroundWorker bw = new BackgroundWorker())
{
bw.WorkerReportsProgress = true;
bw.DoWork += ((s, e) =>
{
BackgroundWorker worker = s as BackgroundWorker;
var export = e.Argument as string;
var wapp = new Microsoft.Office.Interop.Excel.Application();
var workbook = wapp.Workbooks.Open(@"c:\temp\StatcoordinatesByVnl.xlsx");
for (int i = 0; i < 20; i++)
{
worker.ReportProgress(i);
Thread.Sleep(100);
}
});
bw.ProgressChanged += ((s, e) =>
{
progressBar1.Value = e.ProgressPercentage;
});
bw.RunWorkerAsync("class");
}[ Szerkesztve ]
“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
amargo
addikt
áhh, nem olvastam figyelmesen.. SL alatt kell elvégezni.
Ettől még amit írtam ugyan úgy fog működni. Gondolom azért az OOB bekapcsoltad, mert nélküle biztos nem fog menni.. hiszen lokális erőforrást akarsz elérni. Így már értem a dynamic-ot iskingabo Ezeket mindig elfogom felejteni, egyszerűen nem használom.. de köszi a figyelem felhívást
[ Szerkesztve ]
“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
amargo
addikt
Már nem sikerült szerkeszteni.. de dispatcher-en keresztül is megoldhatod kvázi egy queue-ba tudod pakolni a feladatokat és a dispatcher fogja elintézni, hogy a felület is reszponzív maradjon, de a feladat is elintézett legyen - tömören a lényege.
UI elemeket pedig csak ezen keresztül tudsz egy másik szálból piszkálni.[ Szerkesztve ]
“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
ubid
őstag
Igen, amit írtál az jó,
Persze hogy bekapcsoltam, az excel írás ment, csak ugye háttérszál nélkül megfagyaszotta a UI-t ami nem tetszett nekem
Meg iszonyat lassú is volt ez a dynamicos móka.Áttértem inkább WPF-re ott már lehet interopot használni. gyors is. háttérszál is megy!
köszi a segítséget !!
-.-
-
blex
senior tag
előre is bocsi, ha hülyeségeket mondok/kérdezek, de elég kezdő vagyok még ebben a dologban
van egy alkalmazásom, ami fog egy rss feedet és minden egyes eleméből készít egy-egy canvast, amire ha rányomunk, meg kéne nyílnia az ahhoz a hírhez tartozó oldalnak. addig jutottam el, hogy van egy ilyen canvas[i] tömböm, de fogalmam sincs, hogy hogyan kéne minden egyes eleméhez különböző eseményeket rendelni.
előre is köszi, hogyha valaki a megfelelő irányba lökdösne engem[ Szerkesztve ]
-
Karma
félisten
Akkor ha canvas tömböd van, már régen rossz. Használj ListBoxot vagy ItemsControlt, és ezeknek az ItemsSource és ItemTemplate attribútumait a Canvasok legyártásához. A sablonban pedig sok lehetőséged van: létrehozhatsz Buttonöket (Commandot átadva nekik), vagy a Canvasnak adsz Tap eseménykezelőt, vagy Behaviorokkal is lehet játszani.
“All nothings are not equal.”
-
RedSign
tag
Sziasztok!
Sokat gondolkoztam a megoldáson (de nem jártam sikerrel) és keresgéltem már, de nem igazán találom a megoldást. A probléma az lenne (szigorúan magánjellegű érdeklődés, semmi profit nem származik belőle nekem), hogy lenne egy 2D mátrix feltöltve adatokkal (1-10). Ezen adatok jelképeznék a talajszinteket, majd ennek a mátrixnak a tetejénél (1. sor felett, a 0. sorban) egy 1-10 mélységű folyó folyna és elárasztaná a nála alacsonyabb szintű talajokat, de csak azokat amik érintkeznek vele (8 lehetséges irányban).
Próbáltam először egy fentről induló ciklussal, de így nem jártam sikerrel, aztán egy rekurzív algoritmuson gondolkoztam, de egyenlőre nem találtam meg a megfelelő magot (és a kilépési feltételt). Van esetleg valakinek ötlete hozzá?
Előre is köszönöm,
RedSignhttp://www.redsign.hu
-
martonx
veterán
válasz RedSign #3734 üzenetére
Egyrészt ennek mi köze a C#-hoz.
Másrészt ez ha jól értem, egy - ráadásul elég egyszerű - algoritmikus probléma.
Szerintem egy sima ciklussal körbejárod a 2D tömbödet (listádat, kollekciódat, bármidet), és ha az adott mező szomszédos egy vizes mezővel és az értéke kisebb vagy egyenlő, mint a víz kiinduló magassága, akkor vizes lesz.Én kérek elnézést!
-
RedSign
tag
válasz martonx #3735 üzenetére
Szia!
Bocsánat, elfelejtettem írni, hogy C#-ban próbálom megoldani a problémát, ezért is írtam ide a kérdést - igaz nem sok köze van hozzá, belátom.
A ciklikus bejárással az a problémám, hogy igazából szerintem a legjobb megoldás egy rekurzív függvény lenne, de ebben elakadtam és ezért kérdeztem, hogy van-e esetleg valakinek több tapasztalata a megoldásra - ráadásul a rekurzív függvényem StackOverflow exception-t dobott, mivel először objektumokat használtam a földterületek szimulálására.
A kérdésem inkább az, hogy érdemes-e a rekurzióval szenvedni (C# alkalmas erre vagy inkább felejtsem el) vagy hagyjam és inkább oldja meg simán ciklusokkal? (szerintem az előbbi)
Üdv,
RedSignu.i.: Ha a hozzászólásom rossz helyen van, akkor kérlek írd meg, hogy melyik témában lenne a legjobb?
http://www.redsign.hu
-
sztanozs
veterán
válasz RedSign #3736 üzenetére
Simán működik ez felülről futó ciklussal:
vízszint - egy állandó - ez nem is kell sornak legyen, ez elég, ha egy állandóban tárolod, a vízszint magassága úgysem lehet változó celláról cellára
0-9 sorok domborzatstruct Talaj{
public int Magassag;
public bool Elarasztva;
}
int sorok = 10;
int oszlopok = 10;
Talaj[][] terkep = new Talaj[sorok][oszlopok];
int vizszint = rnd.NextDouble()*10;
//...
for (sor = 0; sor<10; sor++) {
for (oszlop = 0; oszlop<10; oszlop ++) {
if(sor = 0){
if (terkep[sor][oszlop].Magassag<= vizszint) {
terkep[sor][oszlop].Elarasztva = true;
continue;
}
}
else if(oszlop > 0 &&
terkep[sor][oszlop].Magassag<= terkep[sor-1][oszlop-1].Magassag &&
terkep[sor-1][oszlop-1].Elarasztva) {
terkep[sor][oszlop].Elarasztva = true;
continue;
}
else if(terkep[sor][oszlop].Magassag<= terkep[sor-1][oszlop].Magassag &&
terkep[sor-1][oszlop].Elarasztva) {
terkep[sor][oszlop].Elarasztva = true;
continue;
}
else if(oszlop+1 < oszlopok &&
terkep[sor][oszlop].Magassag<= terkep[sor-1][oszlop-1].Magassag &&
terkep[sor-1][oszlop+1].Elarasztva) {
terkep[sor][oszlop].Elarasztva = true;
continue;
}
}
}kb, fejből.
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
martonx
veterán
válasz RedSign #3736 üzenetére
sztanozs kollega nagyon ráér
A te problémád nem az, hogy mi lenne az alkalmasabb a feladat megoldására, hanem egyszerűen nem tudsz programozni, és erre megtanítani egy fórum nem fog tudni. Ezt beismerni nem szégyen, javaslom olvass sok szakirodalmat, és gyakorolj serényen.
Szerintem minden általános célú programnyelv alkalmas a rekurzióra, már ha valóban érted és tudod, hogy mi is az a rekurzió.
Van egy Programozás nevű topik, ott szoktak ilyen általános problémákat megkérdezni.
Nagyon remélem, hogy nem sértődsz meg a soraimon, abszolút nem sértésnek, hanem gondolat ébresztésnek szántam.Én kérek elnézést!
-
RedSign
tag
válasz martonx #3738 üzenetére
Sziasztok!
Köszi sztanozs a tippet, közben PHP-ben megoldottam rekurzív ciklussal - úgyhogy martonx szerint programozni sem tudok, jó is a távkiértékelés ismeretlenül -, most már csak át kell ültetnem C#-ba, ami innen már nem vészes.
Eredmény: [link]
Üdv,
RedSignhttp://www.redsign.hu
-
RedSign
tag
Szia!
Igen arra semmiképen sem lehet alapozni, de jelen esetben a példa 10*10-es és abba belefér - hogy előzőleg miért volt túlcsordulás azt sejtem(sok indoktalan object). Majd gondolkozom egy rekurzív megoldáson aminél a stack nem csordul túl.
Üdv,
RedSignhttp://www.redsign.hu
-
bpx
őstag
nekem az ilyen típusú feladatokra a rekurzió ugrik be 1 másodperc gondolkodás után, mint legegyszerűbb megoldás (ami persze nem azt jelenti, hogy optimális)
pl. a rekurzív függvény paraméterként kap egy koordinátapárt, ahol megvizsgálja, hogy talajszint >= 4?
ha igen, megáll
ha nem, "feltölti" a területet vízzel, és meghívja önmagát a szomszédos mezőkre - de csak ahol még nem járt (pl. ha ez kimarad, akkor ugye soha nem áll meg, és kapásból stackoverflow)[ Szerkesztve ]
-
sztanozs
veterán
válasz RedSign #3740 üzenetére
Így visszagondolva az enyém tényleg nem volt teljes - abban visszafelé nem tud terjedni a víz
Kitöltő algoritmusokra vannak mindenféle megoldások...[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Brianiac
aktív tag
Hali!
Nekem olyan kérdésem lenne, hogy Visual Studio 2010-ben hol tudok megadni parancssori paramétert amit a program átvesz??
Lumia 520
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!