- Oroszok csomagolják ki a még be nem mutatott iPad Pro M5-öt
- Íme, a Moto X70 Air, vagyis Motorola Edge 70 minden oldalról
- Akciófigyelő: Komoly kedvezményekkel és ajándékokkal startol a Xiaomi 15T széria
- Bemutatta az Apple a Powerbeats Fit fülhallgatót
- Amikor a fókusz egy stapatelefon óraképernyőjén van
- iPhone topik
- Íme, a Moto X70 Air, vagyis Motorola Edge 70 minden oldalról
- One mobilszolgáltatások
- Végre egy tényleg jó Duotts bringa! - E29 teszt
- Telekom mobilszolgáltatások
- Ilyen lesz a Galaxy S26 Ultra
- Redmi Note 13 4G
- Samsung Galaxy Watch8 és Watch8 Classic – lelkes hiperaktivitás
- Apple Watch
- Hivatalos a OnePlus 13 startdátuma
Ú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.
-
-
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); -
-
Ú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!
- Apple AirPods Pro 2. generáció
- Apple iPhone Air, 256GB, fekete színben
- Bomba ár! Panasonic FZM1-3 Tablet - i5-7Y57 I 8GB I SSD, Adapter, Akkumulátor nélkül
- Bomba ár! Toshiba Satellite L50 - i5-G5 I 8GB I 256GB SSD I 15,6" HD I HDMI I Cam I W10 I Gari!
- Újszerű Lenovo Thinkpad T16 gen2 (13.gen Core I7 32Gb DDR5 1 Tb SSD) MAGYAR laptop 1 év garancia!!
- Apple iPhone 13 Mini 128GB, Kártyafüggetlen, 1 Év Garanciával
- ÁRGARANCIA!Épített KomPhone i5 14400F 32/64GB DDR5 RTX 5060 Ti 8GB GAMER PC termékbeszámítással
- Új monitor állvány- elegáns megoldás a dupla A/4-es papírcsomag helyett - csak össze lett szerelve
- Apple iPhone 15 Pro / 128GB / Kártyafüggetlen/ 12Hó Garancia / 100% akku
- BESZÁMÍTÁS! Asrock B550M R7 5700X 32GB DDR4 512GB SSD RTX 3080 10GB ZALMAN S2 TG Cooler Master 750W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest