- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- Atomenergiával dübörögnek tovább az Amazon adatközpontok, SMR-ek is jöhetnek
- Macron betiltatná az EU-ban a közösségi médiát a 15 év alattiaknak
- Az NVIDIA ipari AI-felhőt épít a németeknek, együtt az OpenAI és a Google
- Két új Ryzen közül választhatnak a kézikonzolok
- Autós kamerák
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- Milyen videókártyát?
- HiFi műszaki szemmel - sztereó hangrendszerek
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Házi hangfal építés
- Milyen billentyűzetet vegyek?
- TCL LCD és LED TV-k
- AMD vs. INTEL vs. NVIDIA
Új hozzászólás Aktív témák
-
Ruszki
senior tag
A main program az külön van és azt akarom hogy a személy osztály is külön legyen!
Lehet hogy a main-ben írtam el valamit -
vlevi
nagyúr
Úgy kell kezdeni, hogy file new project, consoleapplication. Akkor kapsz egy main-t, ami indul a progi futtatásakor.
namespace ConsoleApplication1
{
class Szemely
{
string Nev;
public Szemely(string neve)
{
Nev = neve;
}
internal void Kiir()
{
Console.WriteLine(Nev);
}
}
class Program
{
static void Main(string[] args)
{
Szemely Bela=new Szemely("Béla");
Bela.Kiir();
Console.ReadLine();
}
}
} -
Ruszki
senior tag
Ennek a forráskódját le tudja nekem írni c# nyelven!
Csinálj egy Személy osztályt, amiben van egy String típusú Név változó. A Személy osztály konstruktorának legyen egy String típusú paramétere, amit a konstruktor a Név változóba ír be.
Az osztály meg van!
-
j0k3r!
őstag
hello!
felteszem itt is a kerdesem, mert egyszeruen nem jovok ra, hogy mi a gond.
itt van egy hobby csomagom, ahol szeretnek egy wcf servicet hostolni. ha jol tudom iis deployment eseten kell:
- egy .svc file (Service.svc)
- egy web.config (web.config)
- meg a servicet leiro osztaly + interface a App_Code mappaban elhelyezve (IService.cs, Service.cs)felmasoltam ezeket a serveren a gyoker konyvtarba, ekkor ugy tunt, hogy minden rendben van: [link], de:
- a metaadatokra mutato link (http://w2.asphostpage.lan/j0k3r/Service.svc?wsdl) sajnos 404-et dob, mivel nem a jo (http://restaurant.weblapportal.hu/Service.svc?wsdl) helyre mutat. valahogy ki kellene cserelni az url-ben a server gep nevet a domain nevre, mivel igy nem tudok proxyt generalni (add service reference) a metaadatokbol, mert azt mondja, hogy nem talalhato a servicet leiro metaadat (404).ezt neztem tegnap, meg meg egy jo par variaciot, de egyik sem mukodott.
itt egy tesztkliens hozza, amit, ha localhoston hasznalok, akkor mukodik, szoval nem az a gond, hogy nincs megfelelo endpoint, hanem a 404.
konkret hibauzenet:
A(z) http://restaurant.weblapportal.hu/Service.svc URL-címen talált dokumentum típusa ismeretlen.
A hiba kijavításában segíthetnek az ismert típusokhoz tartozó hibaüzenetek:
- A(z) XML-séma elemtől kapott jelentés: Ismeretlen dokumentumformátum (tartalomtípus: text/html; charset=UTF-8)..
- A(z) http://restaurant.weblapportal.hu/Service.svc elemtől kapott jelentés: Ismeretlen dokumentumformátum (tartalomtípus: text/html; charset=UTF-8)..
- A(z) DISCO-dokumentum elemtől kapott jelentés: Hiba http://w2.asphostpage.lan/j0k3r/Service.svc?disco letöltése során..
- A távoli név nem oldható fel.: 'w2.asphostpage.lan'
- A(z) WSDL-dokumentum elemtől kapott jelentés: Ismeretlen dokumentumformátum (tartalomtípus: text/html; charset=UTF-8)..
A metaadat egy fel nem oldható hivatkozással rendelkezik: „http://restaurant.weblapportal.hu/Service.svc”.
A(z) http://restaurant.weblapportal.hu/Service.svc nem rendelkezett figyelő végponttal, amely tudta volna fogadni az üzenetet. Ezt gyakran téves cím vagy SOAP-művelet okozza. További információ a belső kivétel leírásában olvasható.
A távoli kiszolgáló a következő hibát küldte vissza: (404) Nem található.
If the service is defined in the current solution, try building the solution and adding the service reference again.ha jol emlekszem martonx, akkor te ajanlottad ezt a hostingot. esetleg van evvel kapcsolatban valami tapasztalatod?
termeszetesen masok velemenyet is szivesen fogadom, sajnos emiatt eleg szepen elakadtam
udv.: j0k3r!
-
Ruszki
senior tag
válasz
Peter Kiss #3788 üzenetére
Rajta vagyok az ügyön!
-
fatal`
titán
válasz
Peter Kiss #3785 üzenetére
Már miért ne lenne jó egy fix, 1000 elemű tömbnél?
A length is jó persze.
(#3786) Ruszki: A Length nem típus, csak egy property (int), ami visszaadja a tömb hosszát.
-
Ruszki
senior tag
válasz
Peter Kiss #3785 üzenetére
Azt mondod le kéne cserélne Length típusra!?
Legalább ti értetek hozzá!!!
Sajnos nekem még nagyon nehéz! -
Ruszki
senior tag
Üdv!
Valami nem tetszik neki azt írja túllépte az index értéket most hogy beírtuk az (i+1)-et!
Üdv! -
fatal`
titán
Evvel a kódoddal most feltöltöd a tömböt, majd miután feltöltötte kiírsz egy darab üres sort a képernyőre.
string[] felhasznalok = new string[1000];
for (int i = 0; i < 1000; i++)
{
felhasznalok[i] = "Felhasznalo " + i.ToString();
System.Console.WriteLine(felhasznalok[i]);
}
System.Console.ReadKey(); -
Ruszki
senior tag
Köszi!
Megcsináltam de kiíratásnál a consolba nem írja ki az 1000db felhasználót én vagyok béna(több mint valószínű)!!??
string[] felhasznalok = new string[1000];
for (int i = 0; i < 1000; i++)
{
felhasznalok(i) = "Felhasznalo" + i.ToString();
}
System.Console.WriteLine();
System.Console.ReadKey();(/I)System.Console.WriteLine ide jelen esetben a zárójelbe a "felhasznalok"-at kell írnom nem!?
Bocs,hogy ha tiszta láma vagyok de meg kéne tanulni!
-
fatal`
titán
-
-
Ruszki
senior tag
Üdv!
Nem nagyon vagyok benne a programozásban de lenne egy olyan kérdésem C#-on belül,hogy kell valami speciális változó típus ahhoz,hogy létrehozzak egy olyan tömböt amiben van pl.:1000 db felhasználó mondjuk így:
1.felhasználó
2.felhasználó
.
.
.
1000.felhasználó
Gondolom kell egy 1000 db tömb(talán string típusú) és akkor valami módon megtölteném for ciklussal!?
De nem biztos.Üdv!
-
Karma
félisten
válasz
martonx #3771 üzenetére
Ja értem. Plaintextben jönnek a mezőnév-értékpárok, amiknek a lehetséges kulcsait sehol se akarod felsorolni újra. Hát érdekes kihívás ezt típusérzékenyre megcsinálni.
Gyanítom a Dynamic LINQ is reflexióra épül, talán nem lene lassabb puszta kézzel végigmenni a listán, lekérni reflexióval a property típusát, és a megfelelő Where feltételt rátűzni a selectre.
-
martonx
veterán
A switch-case ne vezessen félre, csak egy ötlet volt, hogy legrosszabb esetben hogy lehet megoldani az esetlegesen bejövő szűrendő mezők lekezelését.
A lényeg, ahogy írtam, hogy a sima where nem fogad el stringet bemenetként.
Csak lambda expressionöket. És ezekből összerakni dinamikusan egy tetszőleges mezőre Contains-t megvalósító expression-t nem olyan triviális (legalábbis nekem).Egyébként ha már ismét szóba került további bajom van. Ugyan dinamikus LINQ bővítménnyel már működik, de a dinamikus részben szám típusú mezőkre hibát dob a Contains.
No applicable method 'Contains' exists in type 'Int32'Per pillanat így néz ki a dinamikus megoldásom, ami szépen végigveszi az összes esetlegesen bejövő szűrést:
foreach (var rule in gridsettings.Where.rules)
{
datas = datas.Where(rule.field + ".Contains(@0)", rule.data);
} -
martonx
veterán
-
martonx
veterán
Sziasztok!
JS-es grid-ek bejövő filter paraméterei alapján kellene az adatforrásaimat szűrni.
Hogyan lehetne az alábbi LINQ kifejezést dinamikussá tenni, hogy ne kelljen őrült nagy switch case-ekkel megoldani a .Where-eket?
valami.Where(a => a.nev.Contains("teszt"))
Azaz ilyesmi kellene ehelyett:
valami.WhereContainsByField("nev", "teszt")
vagy
valami.Where(Expression<Func<T, bool>>) ahol az expression egy Contains-t valósítana meg.Az elején a Lambda részt már összeraktam:
var param1 = Expression.Parameter(typeof(T), "p");
var prop1 = Expression.Property(param1, TargetField);
var exp = Expression.Lambda(prop1, param1);És ebből a végén egy ilyen Expression kellene: Expression<Func<T, bool>> ami a Contains-t valósítaná meg dinamikusan.
-
ubid
senior tag
OFF
-
Brianiac
aktív tag
Még egy Visual Studios kérdésem lenne, az hogy az itemeket nem lehet csak úgy ki removeolni a VS-ből, tehát, hogy onnan eltűnjön, de a vinyóról ne? C++-nál volt olyan h remove ill. h delete, itt viszont csak az van h delete. :S Tudom h ezek nagyon alapdolgok, de kicsit el vagyok veszve mst.
Szerk.: Köszi mindkettőtöknek, sikerült!
Úgy tűnik tényleg az volt a gond, hogy nem egyezett a fájlnév az osztálynévvel, meg lehet a program.cs is bekavart. Lényeg, hogy így jó:
using System;
class szorzo
{
static public void Main(string[] args)
{
int number = int.Parse(args[0]);
Console.WriteLine(number * 2);
}
}Szerk2.: Tényleg jó úgy is ha nem egyezik meg, akkor ezek szerint csak a másik program.cs kavart be. Na és akkor a fentebbi kérdésre még tud v.ki v.mit, szal hogy tudtam volna eltávolítani pl. a program.cs-t a VS-ből anélkül, hogy a vinyóról is törlöm?
-
Brianiac
aktív tag
válasz
Brianiac #3750 üzenetére
Az alábbi kódnak kellene azt a paramétert átvennie amit beírok (pl. 10):
using System;
class Program
{
static public void Main(string[] args)
{
int number = int.Parse(args[0]);
Console.WriteLine(number * 2);
}
}Parancssorból megtudom oldani, de nekem az lenne a lényeg, hogy a fejlesztő környezetben hol tudom megadni. Most kezdek ismerkedni a C#-al, C++-ban az alábbi helyen lehetett megadni: project-properties-configuration properties-command arguments, de itt nem így van.. :S
Jester01: Köszi a gyors választ, megvan. Viszont v.miért nem fordul le a kód, először azt hittem ez a gond, de úgy tűnik mégsem, a VS kékkel aláhúzza a maint és errort ír a 4. ill. 5 sorban.
-
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??
-
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... -
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) -
-
RedSign
tag
-
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. -
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.
-
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?
-
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. -
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,
RedSign -
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.
-
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 -
ubid
senior tag
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 !!
-
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. -
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
-
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");
} -
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éget -
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.
-
ubid
senior tag
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
{
............... -
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. -
ubid
senior tag
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 ? ?
-
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?
-
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
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Vírusirtó topic
- exHWSW - Értünk mindenhez IS
- Teljes verziós játékok letöltése ingyen
- Autós kamerák
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Milyen légkondit a lakásba?
- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- BestBuy topik
- Milyen videókártyát?
- További aktív témák...
- BESZÁMÍTÁS! 2TB Samsung 980 PRO NVMe SSD meghajtó garanciával hibátlan működéssel
- IKEA (HAVREHOJ) tablet vagy laptop tartó
- Bomba ár! Lenovo ThinkPad T460 - i5-6GEN I 8GB I 256SSD I 14" FHD I Cam I W10 I Garancia!
- Okosóra felvásárlás!! Samsung Galaxy Watch 5 Pro, Samsung Galaxy Watch 6 Classic
- ÁRGARANCIA! Épített KomPhone Ryzen 5 9600X 32/64GB RTX 5070 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest