- One mobilszolgáltatások
- Samsung Galaxy Watch7 - kötelező kör
- Kötelező újdonság kerül a telefonok dobozába e hónaptól
- Elérhető az alvási apnoe funkció a magyar Samsung órákon
- Samsung Galaxy XCover7 Pro - burokban született One UI
- Milyen okostelefont vegyek?
- Android alkalmazások - szoftver kibeszélő topik
- Redmi Watch 4 - olcsó hús, sűrű a leve
- 45 wattos vezeték nélküli töltés jön az új iPhone-ba
- A profit csak játék a Red Magic 10S Prónak
Új hozzászólás Aktív témák
-
coco2
őstag
válasz
RedHarlow #9067 üzenetére
Sziasztok!
Lehetőség szerint asp.net példa projecteket keresek. Alap bemutatót, és utána ollózni való nyersanyagot. Összedobnék egy 2-3 táblás gyorsfényezett adat felvitel / módosítás / adat visszakeresés példa alkalmazást. C#-ben otthon vagyok, weben otthon vagyok, asp-ben nem vagyok otthon. Egyszerű dolog után néznék, felületes stuff elég. Blogok, videók, aki ismer a témában barátságos tartalmat, küldjön róla egy linket legyen szíves.
Köszönöm.
-
martonx
veterán
válasz
RedHarlow #9064 üzenetére
Én a helyedben ezt az egész IE megnyitósdit kihagynám. Nézd meg, hogy milyen http hívások mennek az IE és az Oracle izé között, aztán elég csak ugyanazokat a http hívásokat végigcsinálnod C#-ból HttpClient-tel. Ez így sokkal robosztusabb lesz, mint böngészőn keresztül bohóckodni.
-
disy68
aktív tag
válasz
RedHarlow #9062 üzenetére
A Selenium nem fog "elérni" egy korábban indított böngészőt, nem arra lett kitalálva, hanem ő indít egy böngészőt/böngésző motort jobb esetben gui nélkül (headless mode) és abban lehet kódból ügyködni.Amúgy lehet indítani gui-val is, akkor látszik, hogy mi is történik, de az esetek többségében ez nem elvárás.
Szóval ezt úgy tudod megoldani, hogy használod az internet explorer drivert hozzá, ha csak azzal megy jól az oldal. Amikor megvan a feltöltés a programodban, akkor a Selenium-mal megnyitod az oldalt, beloginolsz (így szép magyarosan
), majd megcsinálod amit szeretnél.
-
Keem1
veterán
válasz
RedHarlow #8949 üzenetére
Objektumorientált paradigma megvan?
Lokális változót nem fogsz tudni kívülről használni (ahogy ciklusváltozót se cikluson kívül), így a fentebb említett osztályváltozó lesz a te embered.
Lehet hogy létezik rá favágó megoldás (joysefke köszi a kifejezést), de arról én nem tudok és nem is akarok tudni.
-
dqdb
nagyúr
válasz
RedHarlow #8917 üzenetére
Valami ilyesmi kellene neked fapados megvalósítással:
var delayBetweenRetries = 30 * 1000;
var maxRetries = 3;
var retryCount = 0;
var expectedFileCount = GetExpectedRemoteFileCount();
var actualFileCount = 0;
for (;;)
{
var fileCount = GetRemoteFileCount();
if (fileCount > expectedFileCount)
{
throw new TooManyRemoteFilesException();
}
else if (fileCount == expectedFileCount)
{
break;
}
else if (fileCount == actualFileCount)
{
if (++retryCount > maxRetries)
throw new TooManyRetriesException();
}
else if (fileCount > actualFileCount)
{
retryCount = 0;
actualFileCount = fileCount;
}
else
{
throw new RemoteFileCountMismatchException();
}
Thread.Sleep(delayBetweenRetries);
}Ha a távoli szerveren drága az exportálás és az SCP kapcsolat szeret megszakadni, akkor érdemes úgy megírni a
GetRemoteFileCount()
metódust, hogy az kezelje a kapcsolat újraépítését. És persze nem árt a fájlok számának figyelése mellett a tartalmukat is ellenőrizni később.Ha sokkal bonyolultabb hibatűrést megvalósító esetek is előfordulhatnak, akkor a Polly library az egyik legjobb arra a célra, hogy ne kelljen minden távoli hívásnál/lekérdezésnél 30-50 soros logikát megírni.
-
sztanozs
veterán
-
moseras
tag
válasz
RedHarlow #8738 üzenetére
Üdv,
Egyetértek az előttem hozzászólokkal, néhány megjegyzésem lenne:
string filesdir = Path.Combine(@"C:\tmp", "files");
// Összes
Console.WriteLine("Összes");
string[] files = Directory.GetFiles(filesdir);
foreach (var item in files)
{
Console.WriteLine(item);
}
Console.WriteLine($"{files.Length} db");
// A GetFiles szűrője alapján (a GetFiles nem támogatja a Regex-et)
Console.WriteLine();
Console.WriteLine("A GetFiles szűrője alapján");
files = Directory.GetFiles(filesdir, "REF*.xml");
foreach (var item in files)
{
Console.WriteLine(item);
}
Console.WriteLine($"{files.Length} db");
// Regex-el tovább szűrve
Console.WriteLine();
Console.WriteLine("Regex-el tovább szűrve");
Regex reg = new Regex(@"REF\w+\d+\w+\.xml", RegexOptions.IgnoreCase);
var rfiles = Directory.GetFiles(filesdir, "REF*.xml")
.Where(path => reg.IsMatch(path))
.ToList();
foreach (var item in rfiles)
{
Console.WriteLine(item);
}
Console.WriteLine($"{rfiles.Count} db");Eredmény:
Összes
C:\tmp\files\1.xml
C:\tmp\files\REFblabxx00001xxxblabla.xml
C:\tmp\files\REFblabxx00002xxxblabla.xml
C:\tmp\files\REFblabxx00003xxxblabla.xml
C:\tmp\files\REFblabxx00004xxxblabla.xml
C:\tmp\files\REFblabxx00005xxxblabla.xml
C:\tmp\files\REFFFFFFFFFFFF.xml
7 db
A GetFiles szűrője alapján
C:\tmp\files\REFblabxx00001xxxblabla.xml
C:\tmp\files\REFblabxx00002xxxblabla.xml
C:\tmp\files\REFblabxx00003xxxblabla.xml
C:\tmp\files\REFblabxx00004xxxblabla.xml
C:\tmp\files\REFblabxx00005xxxblabla.xml
C:\tmp\files\REFFFFFFFFFFFF.xml
6 db
Regex-el tovább szűrve
C:\tmp\files\REFblabxx00001xxxblabla.xml
C:\tmp\files\REFblabxx00002xxxblabla.xml
C:\tmp\files\REFblabxx00003xxxblabla.xml
C:\tmp\files\REFblabxx00004xxxblabla.xml
C:\tmp\files\REFblabxx00005xxxblabla.xml
5 dbInnentől kezdve tényleg tudni kellene, hogy mit is akarunk szűrni, mert ugye a REFFFFFFFFFFFF.xml nem mindegy, hogy benne van e, vagy nincs, vagy a számok és a REF között kell e lennie még további karakternek, ha igen, milyennek, hány darabnak, stb. De szerintem innen már boldogulsz vele.
Imi.
-
moseras
tag
válasz
RedHarlow #8731 üzenetére
Üdv!
List<string> words = new List<string> { "class", "xml", "xlsx", "teszt" };
string patt = string.Join("|", words);
Regex regex = new Regex(patt, RegexOptions.IgnoreCase);
string v = "class asdfgh 123 xml8 xls xlsx15 xml xlsx";
int appcount = regex.Matches(v).Count;
Console.WriteLine(appcount);Azt írja ki, hogy 5
-
dqdb
nagyúr
válasz
RedHarlow #8720 üzenetére
Nem ártana, ha véletlenszerűen kiollózott részletek helyett a komplett osztály forrását betennéd, mert így senki sem fog tudni semmi értelmeset mondani, legfeljebb találgatni, hogy mit csinálhattál.
Az utolsó előtti hozzászólásodban például az látszik, hogy a pcpath egy lokális változó, aminek értéket adsz, aztán nem kezdesz vele semmit sem.
-
joysefke
veterán
válasz
RedHarlow #8707 üzenetére
Ha azt is kezelni akarod, ha a keresett szó esetleg többször előfordul a szöveg egy szavában (lalala - la, 3x)
akkor egészben a szövegen (beolvasod egy darab stringként) vagy soronként végigiterálsz és hívogatod astring.Substring(string, int, StringComparison)
metódust amely mindig a keresett szó első előfordulásának indexét adja vissza. Minden egyes találat után növeled az offsetet (a második, egész szám paraméter) az előző előfordulás utánra addig amíg van találat. Az eredményeket számolod.Most hogy leírtam ez utóbbi nekem jobban tetszik mint a fenti.
-
joysefke
veterán
válasz
RedHarlow #8707 üzenetére
én a következőképpen állnék neki:
-(1) Méretétől függően a fájlt beolvasod vagy egyben, vagy végigiterálsz rajta soronként.
-(2) Minden sort szétbontasz szavakra
string.Split(...)]
.A string.Split(...) -et úgy paraméterezed, hogy pontot-vesszőt-szóközt dobjon. (sokat nem számít, de gyorsítja a köv pontot)
-(3) Minden egyes szóra leellenőrzöd, hogy az adott szó tartalmazza-e a keresett szót:
string.Contains(string, string, StringComparision)
Ha igen, növeled a számlálódat. Kisbetű-nagybetűt érdemes figyelmen kívül hagyni, illetve a regionális opciókkal is lehet esetleg játszani (nem tudom érdemes-e). Ehhez a StringComparison enum paramétert állítod be ahogy szeretnéd (ignore case legyen beállítva).
A módszer jól fog működni addig amíg nem akarod azt is nyilván tartani, ha a keresett szó többször szerepelt némely szóban. (lalala - la, 3x).
-
Zalanius
tag
válasz
RedHarlow #8268 üzenetére
Szerintem nagyjából ezt keresed: Office interop objects.
A bemásolt kódod tehát valahogy így folytatódik (ez nyilván csak vázlat, nem is csináltunk semmit a dokumentummal a megnyitáson kívül):
...
excel.Visible = true;
var wbk = excel.Workbooks.Open(path); -
-
sztanozs
veterán
Ú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!
- Milyen nyomtatót vegyek?
- Tőzsde és gazdaság
- Kedvenc zene a mai napra
- EAFC 25
- One mobilszolgáltatások
- Szomorú jövőt vetít előre a dedikált GPU-knak a Jon Peddie Research
- ARC Raiders - Új előzetesen a hamarosan induló tech teszt
- Hobby elektronika
- Eredeti játékok OFF topik
- Tesla topik
- További aktív témák...
- BESZÁMÍTÁS! ASRock FORMULA OC RX 6900XT 16GB videokártya garanciával hibátlan működéssel
- Bomba ár! Lenovo ThinkPad L480 - i5-8GEN I 16GB I 256GB SSD I 14" FHD I HDMI I Cam I W11 I Gari!
- LG 40WP95XP-W - 40" NANO IPS - 5120x2160 5K - 72Hz 5ms - TB 4.0 - HDR - AMD FreeSync
- BESZÁMÍTÁS! Gigabyte B760M i5 14600KF 32GB DDR4 1TB SSD RX 6700XT 12GB Zalman Z1 Plus Seasonic 650W
- Bomba ár! Dell Latitude 7320 - i5-11GEN I 8GB I 256SSD I HDMI I 13,3" FHD I Cam I W11 I Garancia!
Állásajánlatok
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged