Hirdetés
- Motorola Moto G54 5G Power Edition - nem merül le
- Telekom mobilszolgáltatások
- Samsung Galaxy A54 - türelemjáték
- A Xiaomi nem késlekedik az Android 15-tel
- Samsung Galaxy A35 5G - fordulópont
- Yettel topik
- Huawei P30 Pro - teletalálat
- Realme GT Master Edition - mestermunka
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
Hirdetés
-
Tavaszi szél Pixelt áraszt
ma A Pixel 9a és az Android 16 is a vártnál korábban érkezhet.
-
Beült egy AI-cég igazgatótanácsába James Cameron
it A Titanic rendezője a Stability AI igazgatótanácsához csatlakozott.
-
Alpine Linux telepítés mindenféle low-end dologra
lo Alpine LinuxMiután pár éve leesett, hogy az Alpine valami lehetetlenül alacsony erőforrásigényű, elkezdtem ezt tenni...
Új hozzászólás Aktív témák
-
ubid
senior tag
Na igen...
Viszont :
string s1 = "11.22.33."; //falseennek itt false-nak kéne lennie. De a c# az true-t ad vissza , mert 11.22.33 eddig MATCH-el...
Egy csúnya trükk, ha Match-et hívok,akkor mindig csak 1 match-el foglalkozok, amiből az illeszkedő string-nek ugyan akkorának kell lennie mint a bemenőnek...
De az nem a legszebb ...[ Szerkesztve ]
-.-
-
sirszevenap
addikt
Sziasztok.
Visual Studioba szeretnék csinálni egy olyan programot, amely a registry-be beírja magát és amolyan Trial versioként működik.
Példának okáért:
30 Napos Trial.
2015.10.01 - én kezdődik
2015.10.31 - én lejárAmikor lejár, a program írja ki hogy Lejárt a próbaverzió. Dátumátállítással ne lehessen kijátszani illetve áltag felhasználó ne találja meg a registrybe.
Nem igazán megy a kivitelezése, hiába van meg az elképzelés!
Tudtok nekem ebben segíteni?Bankkártyával? Hát persze!
-
sztanozs
veterán
Ja lefelejtette a végéről a $-t, vagy kell egy [^\.] a capturing group-on kívülre - viszont ez meg akkor nem kapja el akkor, ha a sor végén nincs semmi
[ 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...
-
Karma
félisten
válasz sirszevenap #6653 üzenetére
Ez nem elképzelés eddig, csak egy kocsmai ötlet, és egyébként egy nem túl acélos megoldás felé mutat.
Ha csak annyi a védelem, hogy "úgy eldugom a registryben hogy ne találja meg egy átlagfelhasználó", akkor akár egy fájlt is elrakhatsz az Application Data alatt, ott se fogja keresni. Az elég könnyen lenyomozható (ProcMonnal), hogy milyen kulcsot ellenőriz az alkalmazás indulás során.
Én nem szórakoznék házi megoldással, se nem akarnám feltalálni a kereket. Ha olyan szoftverről van szó, aminél tényleg megéri egy ilyen time trial változat elkészítése, mert majd nagy pénzek jönnek be utána, inkább azt javaslom, hogy fizess be egy kész licensing szolgáltatásra.
“All nothings are not equal.”
-
MODERÁTOR
válasz sirszevenap #6653 üzenetére
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
pakriksz
őstag
Erre valaki adjon már valami magyarázatot erre, mert nekem nem sikerült...
Mint látható, az aláhúzott változónak fönt tudok értéket adni, lejjebb már azt írja hogy nincs deklarálva. Ráadásul más változókat amiket ugyan ott ugyan úgy deklaráltam mint ezt (2 bool-t meg egy int-et) még a legbelsőbb if-ben is tudom használni.
[ Szerkesztve ]
Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"
-
pakriksz
őstag
válasz Peter Kiss #6659 üzenetére
azért nézd meg a kódot is... Fönt még nincs baja ugyan azzal a változóval. Lent van.
Egyébként pár összevissza mentegetés módosítgatás, nem ért semmit, majd újraindítottam ezt az ipari hulladék VSE-t, és eltűnt a hiba... Sajnos a microsoft most sem hazudtolja meg magát szoftver minőségben.
Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"
-
pakriksz
őstag
annyi volt az egész, hogy volt egy osztályváltozó, ami elérhető volt a metódusban, de 1 iffel lejjebb már aláhúzta, hogy "nincs deklarálva".
Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"
-
Angol34
újonc
Sziasztok!
Remélem nem off topik ha C# fejlesztői állást ajánlok?!Sürgősen keresünk Budapestre (13 ker) fejlesztő kollégákat hosszú távú, bejelentett munkára.
Szakmai elvárásaink: C#, .NET (4.0), XAML (Silverlight vagy WPF), WCF, tervezési minták, verzió kezelők ismerete.
Fiatal csapat, kiemelt fizetés, azonnali kezdés! Jelentkezni egyszerű szakmai önéletrajzzal:
hr kukac paytech.hu -
sztanozs
veterán
válasz Angol34 #6663 üzenetére
Nem offtopik, hanem konkrétan tilos... Erre ott van az Állásbörze.
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...
-
Dinter
addikt
Üdv.
Egy fájlból szeretnék beolvasni 3 sort, mindegyikben a következő van: árfolyam értéke
Ezt úgy gondoltam, hogy először splittel listbe szétszedem őket, aztán a párosokat és a páratlanakat külön egy másik listbe.Adott ez a kód:
List<string> sorok=new List<string>();
string sor;
using (StreamReader sr = new StreamReader("árfolyamok.txt"))
{
while((sor=sr.ReadLine())!=null)
sorok=sor.Split(' ').ToList();Hogy tudom elérni, hogy a listában az összes árfolyam tartalma megmaradjon, ne csak az utolsó? list.Add nem működik.
-
Alexios
veterán
Azért csak az utolsó marad mert itt:
sorok=sor.Split(' ').ToList();
Mindig felülírod a sorok listát egy új listával.
A split metódus egy tömböt hoz létre ami a felosztás utáni stringeket tartalmazza. Ebből a ToList-el csinálsz egy string típusú listát, lényegében a tömböt alakítod át listává. A sorok=sor.Split kóddal nem hozzá adod a listához új értékként, hanem azt mondod hogy a sorok erre a listára mutasson. Vagy csinálsz egy listát ami List<string> típust fogad és abba rakod bele a .Add metódussal, vagy szebb megoldásként csinálhatsz pl. egy osztályt amibe beolvasod az árfolyamokat és ezeket rakod a listába.[ Szerkesztve ]
-
Dinter
addikt
Mi a különbség, ha azt írom, hogy
using (StreamReader sr = new StreamReader("dolgozok.txt"))
{
while (sr.ReadLine() != null)
{
sor = sr.ReadLine().Split(':');
...
}vagy
using (StreamReader sr = new StreamReader("dolgozok.txt"))
{
while (File.ReadLines("dolgozok.txt")!= null)
{
sor = sr.ReadLine().Split(':');
...
}Az elsőnél a 6 sorból valamiért mindig csak a másodikokat olvassa be. Miért? A beolvasásnak melyik módját ajánljátok? StreamReader vagy File.ReadLines() while ciklusban?
[ Szerkesztve ]
-
Dinter
addikt
Azt hiszem rájöttem. Amikor másodszor is használom a while-lon belül (előtte a feltételben), akkor a következő sorra ugrik. Van valami módja, hogy a ReadLine tartalmát egyből spliteljem(a feltételben hibát ad), vagy ezzel a módszerrel mindenképp egyből be kell töltenem egy másik stringbe, és a stringet splitelem? Vagy simán átírom a feltételt !sr.EndOfStream-re Az a kérdésem továbbra is áll, hogy melyik módszer a legjobb?
-
vlevi
nagyúr
-
Karma
félisten
"ezzel a módszerrel mindenképp egyből be kell töltenem egy másik stringbe, és a stringet splitelem?"
Itt azért fékezzünk egy kicsit. Azzal, hogy egy lokális változót vezetsz be a stringnek, még nem "töltesz" semmit sehová, és véletlenül sem lesz kettő stringed. Egyetlen példány létezik belőle, amit a ReadLine visszaadott, függetlenül attól, hogy hány néven nevezed.
A vlevi és martonx által leírt megoldás a helyes alapvetően.
Ha mindenképp meg akarnád spórolni azt a string változót, akkor a C# 6-os null-safe invocationnel meg lehet oldani tömörebben, de szerintem ennek nincs előnye ebben az esetben, viszont nehezebben olvasható.
while ((var sor = sr.ReadLine()?.Split(':')) != null)
{
// ...valami a sorral (String[])...
}[ Szerkesztve ]
“All nothings are not equal.”
-
Karma
félisten
válasz Peter Kiss #6674 üzenetére
Nem lesz végtelen ciklus, mert amikor a ReadLine nullt ad vissza – és a Split nem hívódik meg – az egész kifejezés értéke null lesz, a ciklus meg megszakad.
Bár tény, nem próbáltam ki, mert telefonon írtam, de nem hiszem, hogy ebben az esetben máshogy működne a ?. operátor, mint általában.
rgeorge: Írtam is.
[ Szerkesztve ]
“All nothings are not equal.”
-
Dinter
addikt
Adott a következő feladat:
A dolgozok.txt fájlból be kell olvasnom a dolgozók adatait, egy sorban egy dolgozó van. Az adatok típusát : választja el.
id:név:jelszó:cágvezető-e
1: Kata:12K55:1
2:Ica:9I44C:0
...kód: [link]
A feladat első része egy beléptető felület. Arra gondoltam, hogy beolvasom a felhasználónevet, megkeresem az indexét, ugyanezt a jelszóval, és ha a kettő nem egyezik (vagy -1 mindkettő), akkor sikertelen a belépés.
Itt viszont nem tudom hogy tudnék végigmenni a dolgozok-on, vagy egy dolgozónak kiíratni az összes adatát.
Így oldottam volna meg:bool helyes=false;
do
{
int nevindex=0;
int pwindex=0;
Console.Write("Add meg a felhasználónevet: ");
for (int i = 0; i < 6; i++)
{
if(lista[i].nev==Console.ReadLine()){
nevindex=i;
}
else{
nevindex=-1;
}
}
Console.Write("Add meg a jelszót: ");
for(int i=0;i<6;i++){
if(lista[i].pw==Console.ReadLine()){
pwindex=i;
}
else{
pwindex=-1;
}
}
if (nevindex==pwindex)
{
Console.WriteLine("\nSikeres belépés!\n");
helyes = true;
}
else
{
Console.WriteLine("\nHibás felhasználónév vagy jelszó!\n");
}
} while (!helyes);[ Szerkesztve ]
-
Karma
félisten
Húha. A belinkelt kódodban egyetlen Dolgozo példányt hozol létre, amit valamiért "dolgozok" nevű változóba raksz, és ennek tragikus következményei vannak a folytatásra nézve. Ha debuggerrel megnéznéd a listádat, akkor azt látnád, hogy bár annyi eleme van a listának, mint ahány sorod volt a szövegfájlban, mindegyik elem ugyanaz (a legutolsó rekord a fájlban).
Minden sorhoz új Dolgozo példányra van szükséged, lásd itt:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace dolgozok
{
struct Dolgozo
{
public int id;
public string nev;
public string pw;
public bool vezeto;
}
class Program
{
static void Main(string[] args)
{
List<Dolgozo> lista = new List<Dolgozo>();
string line;
using (StreamReader sr = new StreamReader("dolgozok.txt"))
{
while ((line=sr.ReadLine())!=null)
{
var sor = line.Split(':');
Dolgozo dolgozo = new Dolgozo();
dolgozo.id = Convert.ToInt32(sor[0]);
dolgozo.nev = sor[1];
dolgozo.pw = sor[2];
dolgozo.vezeto = Convert.ToInt32(sor[3]) == 0;
lista.Add(dolgozo);
}
}
Console.ReadKey();
}
}
}A nevezéktanba és a kisbetű-nagybetű dolgokba nem akartam belenyúlni, de lenne mit javítani azon a fronton. És egyébként az elején létrehozott string[4]-re sincs semmi szükség, mert a Split mindig újat hoz létre.
---
Az ide másolt kódban el tudnád mondani, mégis milyen indíttatásból csináltál hatos ciklusokat; és miért kéred be ennyiszer a nevet és a jelszót? A sorrend kicsit rossz, de ha a fejedben helyrerakod a lépések sorozatát, szerintem gyorsan rájössz a megoldásra. For ciklus nem lesz benne, és indexekkel se kell játszadoznod – a kérdés ugyanis az, hogy "van-e olyan Dolgozo a lista-ban, akinek a neve és a jelszava egyezik a megadott értékekkel?".
Athlon64+: Én úgy látom, az OP kérdés minden része le lett fedve.
De majd szól, ha valami kimaradt.[ Szerkesztve ]
“All nothings are not equal.”
-
Karma
félisten
Gondoltam amúgy. Erre semmi szükség (sőt!), a List<Dolgozo> pontosan meg tudja magáról mondani, hogy hány elem van benne: erre való a Count. Viszont ettől függetlenül, a do-while-on belül csak egyszer kérd be a nevet és a jelszót, az egésznek az elején.
“All nothings are not equal.”
-
Dinter
addikt
Erre gondoltam. Egyébként azért próbálkoztam for-ral, mert az előző(hibás) kódban ha a dolgozo-kon akartam végigmenni, akkor hibát írt ki.
bool sikeres = false;
do
{
Console.Write("Add meg a neved: ");
string nev = Console.ReadLine();
Console.Write("Add meg a jelszavad: ");
string jelszo = Console.ReadLine();
foreach (Dolgozo dolgozo in lista)
{
if (dolgozo.nev == nev && dolgozo.pw == jelszo)
{
sikeres = true;
}
else
{
}
}
if (sikeres)
{
Console.WriteLine("Sikeres bejelentkezés!");
}
else
{
Console.WriteLine("Nem sikerült bejelentkezni.");
}
} while (!sikeres); -
Dinter
addikt
Ez már jó, csak arra írtam, hogy miért a for-ral próbálkoztam.
Ezt írta ki korábban:
A local variable named 'dolgozo' cannot be declared in this scope because it would give a different meaning to 'dolgozo', which is already used in a 'parent or current' scope to denote something else[link] Ez a feladat amúgy. Amikor azt írja, hogy kezelőfelületet kell készítenem, akkor arra gondol, hogy az alkalmazásnak WinForm Appnak kell lennie, vagy lehet Console App is?
[ Szerkesztve ]
-
Karma
félisten
Akkor tehát az volt a hiba, amire gondoltam. Ha más változónevet használsz a foreachben, akkor nem lesz ütközés, és hiba se.
Ezt a versenyt nem ismerem, de mivel sehol se írják konkrétan, szerintem a szöveges felületet is el kellene fogadniuk. Azért megkérdeznék róla egy másik versenyzőt, egy szervezőt vagy neadjisten egy infótanárt.
[ Szerkesztve ]
“All nothings are not equal.”
-
Dinter
addikt
using (StreamReader uzi = new StreamReader("uzenetek.txt"))
{
while ((line = uzi.ReadLine()) != null)
{
Uzenet uzenet = new Uzenet();
var sor = line.Split(':');
(int.TryParse(sor[4], out numerikus) == true)
{
uzenet.projektszam = Convert.ToInt32(sor[0]);
uzenet.kuldes = sor[1];
uzenet.feladoid = Convert.ToInt32(sor[2]);
uzenet.cimzettid = Convert.ToInt32(sor[3]);
uzenet.uzenet = sor[4];
ertekelesek.Add(uzenet);
}
else
{
uzenet.projektszam = Convert.ToInt32(sor[0]);
uzenet.kuldes = sor[1];
uzenet.feladoid = Convert.ToInt32(sor[2]);
uzenet.cimzettid = Convert.ToInt32(sor[3]);
uzenet.uzenet = sor[4];
uzenetek.Add(uzenet);
}
}
}"Az index a tömb határain túl mutat" hibát kapok az if feltételnél, gondolom azért, mert egyszerre fordul le, és a line még nem kap értéket. Hogy tudnám ezt kiküszöbölni?
[ Szerkesztve ]
-
Karma
félisten
A feltételezésed nettó tárgyi tévedés, semmi ilyen fekete mágia nem történik. Valószínűleg elcsúsztak az indexek a feltételben, és a sornak nincs ötödik eleme.
Kérlek kezdd el végre használni a Visual Studio debugger funkcióját, tégy egy breakpointot a problémás sorra, és meg tudod nézni hogy melyik változóban milyen értékek vannak.
[ Szerkesztve ]
“All nothings are not equal.”
-
Dinter
addikt
Van egy listám, amiben a dolgozók adatai, és egy másik, amiben hogy ki hány projektet végzett. A projektek száma alapján kéne sorba kiíratnom. Gondoltam rá, hogy lemásolom a számokat tartalmazó listát, azt sorbarakom, majd megkeresem a számok eredeti indexét a másik listában(ami = az azonosítójával a dolgozónak, ez által ki bírom íratni a nevét). Ez viszont nem működik. Mit ajánlotok?
[ Szerkesztve ]
-
kingabo
őstag
Gondolom, ha a listában sima intek lennének simán menne a rendezés, ugye? Ha igen, akkor a rendezésnél használt feltétel úgy módosul, hogy nem a lista adott elemeit hasonlítod össze(2 int), hanem a két elem 1-1 propertijét: Projects.Count.
A te megoldásodnak is működnie kéne, valszeg valamit rosszul írtál meg. Igaz rettentően bonyolult és sok a fölösleges munka. Ettől függetlenül gyakorlásnak jó lehet.
-
pomorski
őstag
Köszönöm!
-
vlevi
nagyúr
Össze kell joinolni a két listát.
[link]
Csináltam egy mórickaprogit, ami ugyanezt csinálja.class Program
{
class Dolgozo
{
public String nev;
public int ID;
}
class Projekt
{
public int dolgozoID;
public int projekt;
}
static void Main(string[] args)
{
List<Dolgozo> dolgozok = new List<Dolgozo>();
dolgozok.Add(new Dolgozo { nev = "Béla", ID=1 });
dolgozok.Add(new Dolgozo { nev = "József", ID=2 });
dolgozok.Add(new Dolgozo { nev = "István", ID=3 });
dolgozok.Add(new Dolgozo { nev = "Lajos", ID=4 });
List<Projekt> projektek = new List<Projekt>();
projektek.Add(new Projekt { dolgozoID = 1, projekt = 10 });
projektek.Add(new Projekt { dolgozoID = 3, projekt = 5 });
projektek.Add(new Projekt { dolgozoID = 4, projekt = 7 });
var projektlista = from dolg in dolgozok
from proj in projektek
where dolg.ID == proj.dolgozoID
orderby proj.projekt
select new { dolg.ID, dolg.nev, proj.projekt }
;
foreach (var item in projektlista)
{
Console.WriteLine(item.ID+" "+item.nev+" "+item.projekt);
}
Console.ReadKey();
}
}A lényeg középen van, a projektlista-ban
var projektlista = from dolg in dolgozok
from proj in projektek
where dolg.ID == proj.dolgozoID
orderby proj.projekt
select new { dolg.ID, dolg.nev, proj.projekt }
;[ Szerkesztve ]
-
d3ad93
csendes tag
Én fősulin fogalkozok C#-al. Előtte java volt az, a programozás alapjait pedig c-ben tanultam. Ha azért tartod bonyolultnak a C#-ot, mert objektum orientált és ott pont a tömböt említetted akkor azt javasolnám, hogy az OOP alapjait nézd át kicsit, itt példányosításra és öröklődésre gondoltam. Ha azt megérted akkor szerintem nem lesz problémád vele.
-Hány lány lakik a Schönherz koliban? -1024. 2 a tizediken.
-
rgeorge
addikt
Egy kedves partnerünk kéri tőlünk, hogy idézem: "naplózzuk az XML fájlokat, amivel az ő webservice-jüket hívjuk". Van erre egyszerű megoldás C# oldalon? A fiddler-ről tudunk/tudnak, de azt gondolják, hogy ez csak pár sornyi kód lenne.
Picard: "What we leave behind is not as important as how we've lived. After all, Number One, we're only mortal." Riker: "Speak for yourself, sir. I plan to live forever."
-
alratar
addikt
Sziasztok.
Lehet nagyon amatőr kérdét fogok féltenni, amiért előre is bocsánatot kérekk!
Mit jelent az pontosan, hogy az értékül adott kifejezés eredményének nem szükséges ismertnek lennie fordítási időben?
10 féle ember van: aki ismeri a bináris számrendszert, és aki nem
Ú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!
- iPhone 13 Blue 256GB SÉRÜLÉSMENTES!
- 2db Be Quiet! Silent Wings Pro4 140mm
- LG 39GS95UE - 39" OLED / QHD 2K / 240Hz & 0.03ms / 1300 Nits / NVIDIA G-Sync / AMD FreeSync
- GAMER PC: i7-12700KF/14700KF - RTX 3060 12GB GDDR6 - 512GB-4TB NVMe SSD -16/32GB DDR4- GAR/SZÁMLA!!!
- LG 32SQ700S-W - 32" VA Smart - 3840x2160 4K UHD - 62Hz 5ms - WebOS - Wifi + BT - USB-C - Hangszórók
Állásajánlatok
Cég: Ozeki Kft
Város: Debrecen
Cég: Ozeki Kft
Város: Debrecen