Hirdetés

2024. május 27., hétfő

Gyorskeresés

Hozzászólások

(#8701) t-shirt válasza Zalanius (#8700) üzenetére


t-shirt
veterán

Köszönöm!

Próbálkoztam én az eseménykezelő hozzáadásával is, de rosszul használtam a sender-t. Az esemény elindításával meg nem értem semmit mert nem tudtam megállapítani hogy melyik kiválasztásra indult el.

Hibásan a "sender.ToString()" -el próbálkoztam a "((RadioButton)sender).Text" helyett.

Köszönöm, így most már jó :R

[ Szerkesztve ]

(#8702) DrojDtroll


DrojDtroll
addikt

Sziasztok!

Gondolom a legtöbben itt Visual Studiót használunk a fejlesztéshez. Elég lusta vagyok ezért sokszor inteli menüből generálok metódust. Mért tart ez néha nagyon sok ideig?

(#8703) DrojDtroll


DrojDtroll
addikt

Milyen verziókövetést használtok?

Én a Microsoft tfs-es megoldását a tfvc-t de elég bug-osnak tűnik néha. Van közöttünk valaki aki ugyanezt használja? Ha igen, milyen hibákkal találkoztatok eddig?

(#8704) cattus válasza DrojDtroll (#8703) üzenetére


cattus
őstag

Git

Do the thing!

(#8705) tboy93 válasza DrojDtroll (#8703) üzenetére


tboy93
nagyúr

Git

(#8707) RedHarlow


RedHarlow
aktív tag

Sziasztok,

Tudna valaki segíteni egy szókereső szkript megírásában? Visual Studioval kezdtem ismerkedni, szeretném ha a betallózott fájlban megszámolná, hogy hányszor szerepel egy bizonyos szó, majd elmentené azt egy változóba. A neten rengeteg keresőt találtam de ilyet pont nem. :D Link is jó esetleg.

(#8708) joysefke válasza RedHarlow (#8707) üzenetére


joysefke
veterán
LOGOUT blog

é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).

[ Szerkesztve ]

(#8709) joysefke válasza RedHarlow (#8707) üzenetére


joysefke
veterán
LOGOUT blog

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 a string.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. :)

[ Szerkesztve ]

(#8710) cigam


cigam
félisten
LOGOUT blog

Létezik olyan módszer, amivel egy onedrive-ban tárolt excel-ből veszek ki adatokat anélkül, hogy letölteném, és megnyitnám mint sima excel fájl?
Mondjuk még csak ott tartok, hogy nem tudom hozzáadni a "Microsoft Excel xx.xx Object library", mivel nincs a listában. Ez lehet, a Community edition gyengesége, vagy valamit még nem telepítettem fel?

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#8711) RedHarlow válasza joysefke (#8709) üzenetére


RedHarlow
aktív tag

Én találtam közben egy ilyet, ami úgy néz ki hogy tök jól működik:

var rockpath = ofd.FileName;
string text = File.ReadAllText(rockpath).ToLower();
int rockcount = Regex.Matches(text, @"\balma\b").Count;

[ Szerkesztve ]

(#8712) joysefke válasza RedHarlow (#8711) üzenetére


joysefke
veterán
LOGOUT blog

uhh bakker, ez sokkal szebb :B

[ Szerkesztve ]

(#8713) RedHarlow


RedHarlow
aktív tag

Sziasztok!

WinSCP-n keresztüli fájlátvitelt csinált már valaki Visual Studio / C# segítségével? Sehogy se sikerül használni a hivatalos oldalon megadott kódot. Az alábbi hibákat kapom:

The type or namespace WinSCP could not be found.
The type or namespace Protocol could not be found.
The type or namespace SessionOptions could not be found.
The type or namespace TransferOptions could not be found.

KÓD

using System;
using WinSCP;

class Example
{
public static int Main()
{
try
{
// Setup session options
SessionOptions sessionOptions = new SessionOptions
{
Protocol = Protocol.Sftp,
HostName = "example.com",
UserName = "user",
Password = "mypassword",
SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:..."
};

using (Session session = new Session())
{
// Connect
session.Open(sessionOptions);

// Upload files
TransferOptions transferOptions = new TransferOptions();
transferOptions.TransferMode = TransferMode.Binary;

TransferOperationResult transferResult;
transferResult =
session.PutFiles(@"d:\toupload\*", "/home/user/", false, transferOptions);

// Throw on any error
transferResult.Check();

// Print results
foreach (TransferEventArgs transfer in transferResult.Transfers)
{
Console.WriteLine("Upload of {0} succeeded", transfer.FileName);
}
}

return 0;
}
catch (Exception e)
{
Console.WriteLine("Error: {0}", e);
return 1;
}
}
}

[ Szerkesztve ]

(#8714) joysefke válasza RedHarlow (#8713) üzenetére


joysefke
veterán
LOGOUT blog

NuGet -> WinSCP

(#8715) RedHarlow válasza joysefke (#8714) üzenetére


RedHarlow
aktív tag

Igen, közben megtaláltam. :D

A következő kérdésem, hogy itt, hogy tudom használni a pcpath nevű változóm, ami a betallózott fájlom útvonala?

session.PutFiles(@"d:\toupload\*", "/home/user/", false, transferOptions);

(@"pcpath", "/home/user/", false, transferOptions)
("pcpath", "/home/user/", false, transferOptions)

Ezeket próbáltam de nem működik így. :)

Exception thrown: 'WinSCP.SessionRemoteException' in WinSCPnet.dll
The thread 0x2bcc has exited with code 0 (0x0).
'pcpath' fájl vagy mappa nem létezik.
Rendszerhiba. Kód: 2.
A rendszer nem találja a megadott fájlt
The program '[17652] WindowsFormsApp1.exe' has exited with code 0 (0x0).

[ Szerkesztve ]

(#8716) joysefke válasza RedHarlow (#8715) üzenetére


joysefke
veterán
LOGOUT blog

ha a pcpath a változód neve ami a helyi fájl elérési útvonalat tárolja akkor nem kell aposztrófok közé tenni.

[ Szerkesztve ]

(#8717) RedHarlow válasza joysefke (#8716) üzenetére


RedHarlow
aktív tag

"" jelek nélkül
The name pcpath does not exist in the current context.

(#8718) joysefke


joysefke
veterán
LOGOUT blog

Minimális programozás tudás nélkül ez nem fog menni...

Korábban egy betallózásról írtál. Feltételeztem, hogy a betallózott fájl útvonala van a pcpath változóban.

De neked még ilyen nevű változód sincsen. Nem értem honnan szedted

Első körben, hogy kiderüljön működik-e ez az egész, teszt jelleggel cseréld le a pcpath nevet egy létező nem túl nagy fájl útvonalára pld: @"\tmp\test.txt" . Ez lesz a PutFiles első argumentuma.

És ellenőrizd le, hogy ez a putfiles metódus ez fájl útvonalat is elfogad-e vagy mindenképpen mappa útvonal kell-e neki. Te betallózott fájlról írtál, de a példakódban az első arguáentum az könyvtár

[ Szerkesztve ]

(#8719) RedHarlow válasza joysefke (#8718) üzenetére


RedHarlow
aktív tag

Itt tallózom be a fájlt és mentem el mint változó, pcpath.

// Browser/Counter/Path save - PC
private void button1_Click(object sender, EventArgs e)
{

ofd.Filter = "TXT|*.txt";

if ((ofd.ShowDialog() == DialogResult.OK))
{
textBox1.Text = ofd.SafeFileName;
var pcpath = ofd.FileName;
string text = File.ReadAllText(pcpath).ToLower();
int pccount = Regex.Matches(text, @"\balma\b").Count;
label2.Text = Convert.ToString(pccount);

}

}

Egy másik gombbal pedig szeretném feltölteni ugye, ha nem változót használok akkor simán feltölti a fájlt igen. Nem jól hoztam létre a változót a tallózásnál? Kicsit olyan mintha csak az adott résznél tudnám használni a változót máshova nem dobja át az értékét.

[ Szerkesztve ]

(#8720) RedHarlow


RedHarlow
aktív tag

Megnéztem textBox1.Text-et ha átállítom a teljes útvonalra, ofd.FileName akkor tökéletes feltölti a betallózott fájlt. Szóval tényleg a pcpath változóm mentésével lesz a gond, tudnál segíteni hogy hogy tudom valódi változóként elmenteni?

(#8721) dqdb válasza RedHarlow (#8720) üzenetére


dqdb
nagyúr

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.

tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

(#8722) cigam válasza cigam (#8710) üzenetére


cigam
félisten
LOGOUT blog

Létezik, hogy a fejlesztő gépre fel kell telepíteni az Excel-t, hogy a referencialistába kerüljön?[link]

Tegyük fel telepítem a próba verziót. Az elkészült program igényelni fogja, az Excel jelenlétét, vagy a szükséges komponensek befordulnak a programba?

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#8723) dqdb válasza cigam (#8722) üzenetére


dqdb
nagyúr

Az Office interop arról szól, hogy egy futó/akkor elindított Excel alkalmazást vezérelsz távolról a COM interfészén keresztül, hogy hajtson végre ilyen-olyan műveleteket, így mindenképpen telepített kliens kell neki mind fejlesztés közben, mind máshová feltelepítve.

Ha Excel telepítés nélkül szeretnél .xlsx fájlokat kezelni, akkor nézz rá az EPPlus és Open XML SDK projektekre.

tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

(#8724) cigam válasza dqdb (#8723) üzenetére


cigam
félisten
LOGOUT blog

Köszi! Sikerült is beolvasni pár cellát, de ha éppen üres, attól kiborul. Ha pedig nem numerikus érték (szám) van az adott cellában, akkor nem a szöveget adja vissza, hanem egy számot. De hogy pl. a "teszt"-ből hogyan lesz 9 az nem teljesen világos.
Tuti valamit rosszul csinálok, de mit?
Ez a kód

[ Szerkesztve ]

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#8725) cigam válasza cigam (#8724) üzenetére


cigam
félisten
LOGOUT blog

Storno. Ez alapján sikerült sokkal egyszerűbben megoldani.

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#8726) cigam


cigam
félisten
LOGOUT blog

ondedrive-ról hogy tudok letölteni egy fájlt? Ha csak a megosztáss linket adom meg a webClient.DownloadFile()-nak, akkor csak egy html oldalt tölt le.

Megvan.

[ Szerkesztve ]

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#8727) RedHarlow


RedHarlow
aktív tag

Sziasztok,

Van esetleg valakinek olyan txt keresője, ami egy adott szó után lévő pár karaktert elmenti változóként? Be szeretnék tallózni egy fájlt és egy bizonyos érték érdekelne belőle amit később a programban használni szeretnék.

ui: Kezdő vagyok, ne öljetek meg :D

[ Szerkesztve ]

(#8728) tboy93 válasza RedHarlow (#8727) üzenetére


tboy93
nagyúr

Kezd el a feladatot és segítünk ha elakadsz benne.

(#8729) RedHarlow


RedHarlow
aktív tag

Csatolom:

public static string getBetween(string strSource, string strStart, string strEnd)
{
int Start, End;
if (strSource.Contains(strStart) && strSource.Contains(strEnd))
{
Start = strSource.IndexOf(strStart, 0) + strStart.Length;
End = strSource.IndexOf(strEnd, Start);
return strSource.Substring(Start, End - Start);
}
else
{
return "";
}
}

private void Button2_Click(object sender, EventArgs e)
{
ofd.Filter = "TXT|*.txt";
ofd.Title = "Please select Rock";
ofd.FileName = "Rock_*";

if ((ofd.ShowDialog() == DialogResult.OK))
{
textBox1.Text = ofd.SafeFileName;
var filepath= ofd.FileName;
Rock.File = filepath;
Rock.Text = File.ReadAllText(Rock.File).ToLower();
string data = getBetween(Rock.Text, "Rockband name: ", "\n");
MessageBox.Show(data);
HotFix.HFID = data;

}

[ Szerkesztve ]

(#8730) RedHarlow


RedHarlow
aktív tag

A fájl beolvasásával van valami baj szerintem, mert ha Rock.Text sima szöveg akkor abban megtalálja amit kell. :/

(#8731) RedHarlow


RedHarlow
aktív tag

Sziasztok,

Regex.Matxhes-el megoldható egyszerre több szó keresése?
A (B)class, xml, xlsx(/B)-eket szeretném megszámolni egy fájlban.

int appcount = Regex.Matches(text, @"\.class\b").Count;

(#8732) moseras válasza RedHarlow (#8731) üzenetére


moseras
tag

Ü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

[ Szerkesztve ]

(#8733) RedHarlow válasza moseras (#8732) üzenetére


RedHarlow
aktív tag

Profi, köszönöm.

(#8734) RedHarlow válasza moseras (#8732) üzenetére


RedHarlow
aktív tag

Lenne még egy olyan eset, hogy REFblabxxsokszámxxxblabla.xml fájlokat kellene számolnom, úgy, hogy azok tényleg fájlok legyenek tehát legyen .xml kiterjesztésük és REF-el kezdődjenek. Tehát ezt szeretném valahogy megadni keresési opciónak:

REF*.xml

Előre is köszönöm a segítséget!

[ Szerkesztve ]

(#8735) cattus válasza RedHarlow (#8734) üzenetére


cattus
őstag

Tipp: nézz utána a regex kifejezéseknek, és hogy azon belül mi mit jelent. Sokkal gyorsabban haladnál, és te is sokat tanulnál közben ahelyett, hogy minden egyes apró kérdést itt teszel fel.

Do the thing!

(#8736) RedHarlow


RedHarlow
aktív tag

Ez már megtörtént közben, REF.*\.xml-re jutottam, de unrecognised escape characterre jutottam. Stackoverflow-on\googleben\youtubeon is kerestem hasonló hibákat de nem igazán jött össze. Másfél óra önálló keresés alatt nem írok be ide semmit. :)

[ Szerkesztve ]

(#8737) dqdb válasza RedHarlow (#8736) üzenetére


dqdb
nagyúr

[link]
erre nem kell regex

unrecognised escape characterre jutottam. Stackoverflow-on\googleben\youtubeon is kerestem hasonló hibákat de nem igazán jött össze.
Pedig a nálam legalábbis első találat lenne a megfejtés. Vagy @" vagy .*\\..

tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

(#8738) RedHarlow válasza dqdb (#8737) üzenetére


RedHarlow
aktív tag

@-ral nem dobott hibát de nem jól számolt, a .*\\. ,működött, köszönöm. Ezzel végeztem is a feladattal, szóval most egy darabig csöndbe leszek. :D

[ Szerkesztve ]

(#8739) moseras válasza RedHarlow (#8738) üzenetére


moseras
tag

Ü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 db

Innentő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.

[ Szerkesztve ]

(#8740) joysefke


joysefke
veterán
LOGOUT blog

xUnit Dispose vs Async hogyan?

Sziasztok!

Nagyon új nekem ez az xUnit, tegnap kezdtem :B és nem hiszem, hogy jól használom az Async metódusomatot a Dispose()-ban: működik, de nem teljesen azt csinálja a kód amit szeretnék/elvárnék...

Az adott xUnit test class egy külső API interfészről történő lekérdezést tesztel.

Az xUnit osztály konstruktorában van a setup kódom, itt többek között kreálok egy
friss sessionId-t amitől a teszt végén mindenképpen meg kell szabadulnom.
A "megszabadulás" egy Async DeleteSession(string sessionId) hívás formájában kell megtörténjen, ezért ezt beraktam a teszt osztály public async void Dispose() metódusába.

A problémám az, hogy a Dispose() metódusban a végrehajtás látszólag túljut az await DeleteSession()-ön, ezt onnan látom, hogy a SessionId törlődik a külső rendszerből.
De a DeleteSession() utáni szinkron utasítások már nem hajtódnak végre.

Itt a kód!

Osztály deklaráció, konstruktor és Dispose:
public class GetAccountDetailsTests : IDisposable
{
// Setup
public GetAccountDetailsTests(ITestOutputHelper output)
{
// csak a lényeg:
_getSession = hot task indul
}

public async void Dispose()
{
// nem annak látszik, de ez SZINKRON, a Task már elkészült
var sessionId = (await await _getSession).SessionId;
_output.WriteLine($"Teardown: DeleteSession({sessionId}) called...");

// ez biztosan most indul és a külső szervizből látszólag
// törlődik a session tehát a lényegi dolgát elvégzi,
// NEM tud exceptiont dobni
// (elnyeli őket) kóddal jelzi ha hiba volt
var result = await _client.DeleteSession(sessionId);

// Ide nem jut el a végrehajtás, nem ír semmit az outputba
var code = result.HttpStatusCode.ToString();
_output.WriteLine($"Teardown: DeleteSession(...) returned with {code}");
}

Teszt metódus belseje, try-catch-ben, hogy biztosan eljusson a Dispose-ig:
public async void WhenValidArguments_ReturnsAccountDetails()
{
// Arrange
var sessionId = (await await _getSession).SessionId;

// Act
var result = await _client.GetAccountDetails(sessionId);
AccountDetailsModel account = JsonConvert.DeserializeObject<AccountDetailsModel>(result.Json);

// Assert
Assert.True(result.HttpStatusCode == System.Net.HttpStatusCode.OK);
Assert.True(account.AccountName == _settings.AccountName);
}

Nem tudom hogyan kéne értelmesen debuggolni a tesztet, hiába rakok a Dispose-ba breakpointot átugrik rajta amikor a VS "Debug selected test" opciójával indítom. :F

[ Szerkesztve ]

(#8741) RedHarlow


RedHarlow
aktív tag

Sziasztok,

Van egy java alapú weboldal, egy jegykezelő, minden jegynél van egy lista, hogy kik vásárolták meg. Ez a lista a chrome vizsgálójában tökéletesen látható a forráskódban azonban ha c#-al kezdem olvasni az oldalt akkor egy tök csupasz html-t kapok. Volt már valakinek szerencséje ilyenhez? Valaki tud esetleg valami leírást hogy hogy használható fel az ilyen alkalmazások adatai? Ezeket a jegyeknél lévő listákat szeretném összevetni a saját excelben lévő listámmal.

(#8742) cigam válasza cigam (#8725) üzenetére


cigam
félisten
LOGOUT blog

Elakadtam a dátumnál. A példa alapján, ha dátum van a cellában akkor
// Retrieve the date value in cell A2.
value = GetCellValue(fileName, "Sheet1", "A2");
Console.WriteLine(
DateTime.FromOADate(double.Parse(value)).ToShortDateString());

Viszont nálam ez system.formatexception hibára fut.

+ Mit jelent az, hogy For dates, this code returns the serialized value that represents the date. ?
Valami trükk van a dologban, mert ha csak simán kiíratom a szöveget(Console.WriteLine(value);), akkor semmi nem jelenik meg.

[ Szerkesztve ]

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#8743) dqdb válasza cigam (#8742) üzenetére


dqdb
nagyúr

Ha a value-ban lévő érték tizedespontot használ, akkor a megoldás double.Parse(value, CultureInfo.InvariantCulture) lesz.

tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

(#8744) cigam válasza dqdb (#8743) üzenetére


cigam
félisten
LOGOUT blog

Magában a táblázatban ponttal szerepel(rövid dátum formátum): 2019.04.12
Viszont így is kiakad ugyanott, ugyanúgy.

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#8745) dqdb válasza cigam (#8744) üzenetére


dqdb
nagyúr

Ha az Excelben adott mező formátuma dátum, akkor a GetCellValue függvényből egész számot kapsz vissza szövegként, ha idő, akkor egynél kisebb törtet, ha dátum és idő, akkor törtet. Ha van törtrész, akkor a szövegben tizedespont szerepel, amire a Double.Parse(value) akkor fog lefutni, ha olyan regionális beállításod van, ami tizedespontot használ, vagy második paraméterként átadsz egy ilyen locale-t. Az előző hozzászólásomban szereplő CultureInfio.InvariantCulture ilyen, írd be, és működni fog.

43566.556944444441 => 2019.04.11. 13:22:00
43567 => 2019.04.12. 0:00:00

[ Szerkesztve ]

tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

(#8746) cigam válasza dqdb (#8745) üzenetére


cigam
félisten
LOGOUT blog

a GetCellValue függvényből egész számot kapsz vissza szövegként
Ez az, hogy nem kapok. Egy üres semmit ad vissza nem a dátumot szöveges formában. Megttenéd hogy rákukkantasz?[link] a /bin-ben van a táblázat is.

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#8747) dqdb válasza cigam (#8746) üzenetére


dqdb
nagyúr

Az Excel fájlban a B1 mezőben van a dátum, nem a B2-ben, ahogyan a forrásban szerepel.

Két megjegyzés:
1. oké, hogy az elvi lehetőség adott a közel teljes UTF8 használatára a forráskódban a szimbólumok nevéhez, azonban nem túl szerencsés ékezetes függvény- és változóneveket használni (és úgy általában nem angolt sem)
2. a GetCellValue metódust át kellene dolgozni, mert jelenleg minden érték kiolvasásánál megnyitod az Excel fájlt, megkeresed a munkalapot, ott mezőt, kiolvasod, majd lezársz mindent

tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

(#8748) cigam válasza dqdb (#8747) üzenetére


cigam
félisten
LOGOUT blog

Hopsz :B
Tudom, tudom, de ez saját hobbi projekt, már annak is örülök ha működik. Köszi a tippet, megpróbálom átalakítani.
Köszi a segítséget!

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#8749) cigam válasza cigam (#8748) üzenetére


cigam
félisten
LOGOUT blog

A beolvasást áttettem a GetCellValues-ba:

public void GetCellValues(string fileName, string sheetName)
{
...
// Éjjel
addressName = "B4";
Cell theCell = wsPart.Worksheet.Descendants<Cell>().Where(c => c.CellReference == addressName).FirstOrDefault();
// If the cell does not exist, return an empty string.
if (theCell != null)
{
adat = theCell.InnerText;
if (adat != "") ejszaka_min = int.Parse(adat);
else
{
MessageBox.Show("Az éjszakai minimum hőmérséklet nincs kitöltve");
hiba = true;
return;
}
}
addressName = "C4";
theCell = wsPart.Worksheet.Descendants<Cell>().Where(c => c.CellReference == addressName).FirstOrDefault();
...
}

Így már jó(bb)?

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#8750) harylmu válasza joysefke (#8740) üzenetére


harylmu
őstag

async void-ot soha tobbe ne tegyel egy mondatba. Guglizd meg miert ne. Egyebkent ha jol latom ez kell neked: https://mderriey.com/2017/09/04/async-lifetime-with-xunit/. (mobilrol nem tudok linkelni sorry. )

Copyright © 2000-2024 PROHARDVER Informatikai Kft.