Sziasztok az lenne a kérdésem, hogy hogyan tudok ftpre kapcsolódni és fájlt feltölteni windows forms segítségével c++ alatt ? előre is köszi a segítséget
Gyorskeresés
Legfrissebb anyagok
- Bemutató Spyra: akkus, nagynyomású, automata vízipuska
- Bemutató Route 66 Chicagotól Los Angelesig 2. rész
- Helyszíni riport Alfa Giulia Q-val a Balaton Park Circiut-en
- Bemutató A használt VGA piac kincsei - Július I
- Bemutató Bakancslista: Route 66 Chicagotól Los Angelesig
Általános témák
LOGOUT.hu témák
- [Re:] [D1Rect:] Nagy "hülyétkapokazapróktól" topik
- [Re:] eBay-es kütyük kis pénzért
- [Re:] [gban:] Ingyen kellene, de tegnapra
- [Re:] [Luck Dragon:] Asszociációs játék. :)
- [Re:] [Szevam:] Érzelmi magabiztosság/biztonság - miért megyünk sokan külföldre valójában?
- [Re:] [sziku69:] Fűzzük össze a szavakat :)
- [Re:] [sziku69:] Szólánc.
- [Re:] [bambano:] Bambanő háza tája
- [Re:] Elektromos rásegítésű kerékpárok
- [Re:] [Tüzi:] Geek-hatarozo
Szakmai témák
PROHARDVER! témák
Mobilarena témák
IT café témák
Hozzászólások
Jester01
veterán
Komolyan nem értem, hogy aki nem tudja használni msdn-t illetve google-t minek akar programozni A windows forms-ot meg főleg nem értem hogy jön ide. Mi köze annak az ftphez?
Megoldás: FtpPutFile illetve WebRequestMethods.Ftp.UploadFile
Jester
taskao
csendes tag
Helló!
Én is egy ftpvel kapcsolatos problémába ütköztem!
System::IO::FileInfo ^_FileInfo = gcnew System::IO::FileInfo(Fájlnév->Text);
System::Net::FtpWebRequest ^_FtpWebRequest = safe_cast<System::Net::FtpWebRequest^>(System::Net::FtpWebRequest::Create(gcnew Uri(L"ftp://ftp.atw.hu/log.txt")));
_FtpWebRequest->Credentials = gcnew System::Net::NetworkCredential(L"****", L"****",L"ftp.atw.hu");
_FtpWebRequest->KeepAlive = false;
_FtpWebRequest->Timeout = 20000;
_FtpWebRequest->Method = System::Net::WebRequestMethods::Ftp::UploadFile;
_FtpWebRequest->UseBinary = true;
_FtpWebRequest->ContentLength = _FileInfo->Length;
int buffLength = 20480;
array<System::Byte> ^buff = gcnew array<System::Byte>(buffLength);
System::IO::FileStream ^_FileStream = _FileInfo->OpenRead();
try
{
System::IO::Stream ^_Stream = _FtpWebRequest->GetRequestStream();
int contentLen = _FileStream->Read(buff, 0, buffLength);
while (contentLen != 0)
{
_Stream->Write(buff, 0, contentLen);
contentLen = _FileStream->Read(buff, 0, buffLength);
}
_Stream->Close();
delete _Stream;
_FileStream->Close();
delete _FileStream;
}
catch (Exception ^ex)
{
MessageBox::Show(ex->Message, "Upload Error", MessageBoxButtons::OK, MessageBoxIcon::Error);
}
szépen lefordítja meg minden csak ezt írja ki amikor elkezdi a fájlt feltölteni:
The remote server returned an error530) Not logged in.
pls help
!wannabe
tag
Üdv,
(Félek kissé túlságosan triviális lesz a kérdésem...)
Ha csinálok egy osztályban egy paraméter nélküli és egy 3 paraméterrel rendelkező konsturktort akkor mindkettőhöz meg kell csinálnom a desktruktorokat?
Átfogalmazva: Ugye nem kell, hanem elég egyszer megírni a destruktort a konstruktorok után?
[ Szerkesztve ]
shev7
veterán
destruktornak nincs parametere. Egy osztalynak mindig csak egy destruktora van.
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
Jester01
veterán
Örölök, hogy segítettem. Nem most jöttünk ám a falvédőről
Nem tudom a NetworkCredential-nak kell-e harmadik (domain) paraméter. Amúgy látszólag jó, én valami hálózati forgalom naplózóval megnézném mi is történik valójában.
Jester
gyari
csendes tag
köszi szépen sikerült
és tényleg nem kellett a 3. paraméter és úgy működött
gyari
csendes tag
és amúgy valahogy kicsit másképp nem lehetne megoldani mert így hogy while van a programban befagyasztja a programot szóval amég tölti fel addig semmit nem tudok csinálni meg így a progressbart se töti csak ha kész teljesen :S
gyari
csendes tag
sikerült megoldani background workerrel
csak van egy kis problémám még mindig vele
feltölti a fájlt normálisan meg minden csak szeretném megjeleníteni progressbarral is hogy hol tart a feltöltés
background worker:
private: System::Void Fájlfeltöltő_DoWork(System::Object^ sender, System::ComponentModel::DoWorkEventArgs^ e) {
if(feltöltés==1)
{
while (contentLen != 0)
{
_Stream->Write(buff, 0, contentLen);
contentLen = _FileStream->Read(buff, 0, buffLength);
e->Result = contentLen;
}
}
}
private: System::Void Fájlfeltöltő_ProgressChanged(System::Object^ sender, System::ComponentModel::ProgressChangedEventArgs^ e) {
Fájlméret->Text = contentLen.ToString();
this->progressBar1->Value = e->ProgressPercentage;
}
private: System::Void Fájlfeltöltő_Completed(System::Object^ sender, System::ComponentModel::RunWorkerCompletedEventArgs^ e) {
_Stream->Close();
_FileStream->Close();
button6->Enabled = true;
feltöltés=0;
}
Fájlfeltöltés:
UploadFileName = L"ftp://ftp.atw.hu/Uploadmusic/"+FájlMegnyitás->SafeFileName;
_FileInfo = gcnew System::IO::FileInfo(Fájlnév->Text);
_FtpWebRequest = safe_cast<System::Net::FtpWebRequest^>(System::Net::FtpWebRequest::Create(gcnew Uri(UploadFileName)));
_FtpWebRequest->Credentials = gcnew System::Net::NetworkCredential(L"****", L"****");
_FtpWebRequest->KeepAlive = false;
_FtpWebRequest->Timeout = 20000;
_FtpWebRequest->Method = System::Net::WebRequestMethods::Ftp::UploadFile;
_FtpWebRequest->UseBinary = true;
_FtpWebRequest->ContentLength = _FileInfo->Length;
buffLength = 20480;
buff = gcnew array<System::Byte>(buffLength);
_FileStream = _FileInfo->OpenRead();
try
{
_Stream = _FtpWebRequest->GetRequestStream();
contentLen = _FileStream->Read(buff, 0, buffLength);
feltöltés = 1;
button6->Enabled = false;
Fájlfeltöltő->RunWorkerAsync();
}
catch (Exception ^ex)
{
MessageBox::Show(ex->Message, "Feltöltési hiba!", MessageBoxButtons::OK, MessageBoxIcon::Error);
}
Jester01
veterán
De meg lehet oldani másképp is
Használhatod az aszinkron metódusokat (Begin*/End*) vagy indíthatsz külön szálat (thread). Progressbarhoz pedig értelmes méretű és darabszámú kisebb blokkokban írd az adatot és közben így tudod frissíteni a csíkot. (Ha a többszálú megoldást választottad, akkor ügyelve a megfelelő thread használatára.)
MOD: látom épp mostanra sikerült valamit alkotnod ... ettől függetlenül amit írtam az él.
[ Szerkesztve ]
Jester
!wannabe
tag
STL programozáshoz azon kívül, hogy Google-zok van olyan doksi vagy könyv amit kifejezetten ajánlotok? Angol cuccok előnyben.
[ Szerkesztve ]
!wannabe
tag
A lmgfy-ban rákersek arra, hogy C++ STL utána kipróbálom a linket és gyönörűen működik, azonban miután ide postolom (az előbbi postom Google szócskája mögé került volna a link) és visszanézem a linket azt látom, hogy C STL-re keres csak rá. Lehet, hogy a speciális karaktereket forumról visszanézve nem jeleníti meg a lmgfy?
doc
nagyúr
en mindig a cplusplus.com-on szoktam megnezni ha valami STL-es dolog erdekel
mephi666
nagyúr
uff!
lenne egy kis problémám, amihez úgy gondoltam, hogy írok egy pár soros programot, de 3-4éve programoztam utoljára és totál kiesett minden úgy pislogok a különböző kódrészletekre, hogy az valami hihetetlen...
a probléma, amit meg kellene oldani: van egy többszáz soros nyers szövegfájl, aminek egy részéből könnyen kezelhető formátumút kellene varázsolni... konkrétan: kellene az első 5 karakter minden sorból (szám) és a 38-47-ig terjedő szintén szám, amiben ezreseket jelölő pontok vannak... pontosan: a 41. karakter és a 44. ilyen ezrest jelölő pont... ezeket a számokat kellene kiírni egy fájlba "szám1";;"szám2" formában...
valami rémlik, hogy hogy kellene elindulni, de gyorsan beletört a bicskám... sokat felejtettem... amikor benne voltam, ez szerintem 10perces munka lett volna, de most szerintem fél napig ülnék rajta
valaki tudna esetleg kis segítséget nyújtani?
"Kis lépés az emberiségnek... hosszú lépést a férfiaknak..." ++++++++++++++ BattleTag: mephiHUN#2258 ++++++++ A kígyó veszélyes állat mert harap, de a takarítónő még veszélyesebb, mert ő Maris
Jester01
veterán
a 41. karakter és a 44. ilyen ezrest jelölő pont
Ez igen érdekes szám lesz, mert a 41. és a 44. karakter között csak 2 számjegy van, a 42. és a 43. ... akkor az hogy lehet ezres?
Ez sima szövegfeldolgozás, én tuti nem írnék rá c++ programot hanem bármilyen, regex-es cserét tudó programot használnék. Pl. sed-del így nézhet ki:
sed -r 's/([0-9]{5}).{32}([0-9]{3})\.([0-9]{3})\.([0-9]{3}).*/\1;;\2\3\4/'
Jester
mephi666
nagyúr
akkor elszámoltam köszönöm a segítséget... megpróbálom megcsinálni majd a javaslatoddal (és persze újra átszámolom a karaktereket)
"Kis lépés az emberiségnek... hosszú lépést a férfiaknak..." ++++++++++++++ BattleTag: mephiHUN#2258 ++++++++ A kígyó veszélyes állat mert harap, de a takarítónő még veszélyesebb, mert ő Maris
---Lasali---
Közösségépítő
Sziasztok! Az lenne a kérdésem hogy a gotoxy parancs miért csak a Borland Turbo C++ ben akar nekem működni? Ha exe -t készítettek vele akkor ott már nincs figyelembe véve. Turbo C++ for windows 4.5 ban pedig már a fordítóban sem megy.
doc
nagyúr
a C/C++ nyelvben nem letezik gotoxy parancs, ezert...
a borland sajat idiota konyvtaraiban van, aztan kb. ennyi, sehol mashol nem fog mukodni
---Lasali---
Közösségépítő
Ó ez "jól" hangzik... És akkor mivel lehet helyettesíteni?
Jester01
veterán
Az platformfüggő. Sima windows konzol használata esetén például SetConsoleCursorPosition.
De a legjobb lenne ha nem használnád egyáltalán.
Jester
doc
nagyúr
Jester01-nek van igaza, ne hasznald
ha feltetlenul ragaszkodsz a karakteres kepernyo piszkalasahoz, akkor vagy hasznalj egy altalanos libet (pl. ncurses) vagy ird meg azt a ket-harom fuggvenyt (kurzorpozicionalas, szoveg/hatterszinbeallitas) ami kell pl. BIOS-hivasokkal
Jhonny06
veterán
Sziasztok!
Egy tömb indexelésénél meg lehetne oldani azt, hogy az üres memóriaterületre mutató elemeket átugorjam? Hangsúlyozom, nem a tömb végénél kéne megállnia, hanem pl. egy 20 elemű tömböt mindig eltérő számú változóval töltenék meg és ha esetleg két változó között lenne egy üres elem (mert esetleg egy for loopban a feltétel nem teljesül, de a növelés ugye mindenképpen megtörténik), akkor azt ugorja át, elég csúnyán néz ki az outputban a -858993460. Próbáltam if statement-et, hogy csak akkor legyen cout, amikor a változó!=NULL-al, de ez így elég necces megoldás és tulajdonképpen nem is működik.
[ Szerkesztve ]
doc
nagyúr
ilyen, amit leirtal nincs
a tomb az X db valtozo egymas utan, attol hogy valamelyiknek nem adsz erteket, az letezik
vagy nyilvantartod hogy melyik kell es melyik nem, vagy kinullazod a tombot es kiiratod a 0-kat is
vagy hasznalsz valamilyen mas adatszerkezetet (list, map, stb)
Jhonny06
veterán
Tehát semmi olyan módszer, amivel ki lehet zárni azokat a változókat, amiknek nem adtam értéket?
Gyuri16
senior tag
doc leirta.. csak ismetelni tudnam. esetleg ird le konkretan mit akarsz csinalni (programkoddal is, ha lehet), es kitalalunk valamit
Nem vagyok egoista, csak uborkagyalu!
Jhonny06
veterán
(Az előző kérdésemre azóta már találtam megoldást, bár nem túl elegáns és nem is teljes.)
Sziasztok!
Elkezdtem a Nell Dale-féle ~800 oldalas Data Structures könyvet, 100 oldal után egész jónak tűnik, bár nem könnyű angolul olvasni, főleg így kezdőként (mármint a C++-ba, nem az angolba ). Nem szeretek segítséget kérni, de van egy dolog, amit akárhányszor rágok át, akkor sem értek. Az adattípusoknál három felsorolt elem van: structure, class és array. Ezek közül egyedül az array-re írja azt, hogy struktúrált, a többi struktúrálatlan. Ez pontosan mit is jelent? Magyarul tudom, hogy mit jelent a szó, de nem tudom átvezetni a kifejezést. Az elemeket ismerem, stb., tehát az alapokkal nincs gond. Nagyjából sejtem, hogy miről van szó, gondolom az elemek elhelyezkedésére érti, de jobb biztosra menni.
Köszi,
J.
[ Szerkesztve ]
!wannabe
tag
Hali,
Adott a fenti bekérés. Az a problémám, hogy ha a Darab ciménél nem 1db szót adok meg akkor a szóköz utáni részt úgy veszi mintha a következő bekérés értéke lenne.
Q.: Hogy tudnám megoldani, hogy szóközös Darabcimeket is megadhassak? Olyan megoldás érdekelne ami cin-el van megvalositva, nem pedig a getline.
Jester01
veterán
Pedig de, getline Miért nem jó az neked? Akkor meg implementáld újra kézzel ... de inkább ne.
Jester
doc
nagyúr
+1
a getline-t pont erre talaltak ki
!wannabe
tag
viszont ha getline-t használok és szamot akarok bekerni akkor kiabal, ez miért van?
WonderCSabo
félisten
Nem kéne kiabálnia, pontosan h. érted? Jól használod a getlinet?
!wannabe
tag
Azoknál a bekereseknél ahol szamot getlineoztam be ott a kövi üzenet jött: proba.cpp:35: error: no matching function for call to ‘getline(std::istream&, int&, char)’
igy hasznalom
pl: cout << "kora"; getline(cin, kor);
[ Szerkesztve ]
Berenyimiki
csendes tag
Üdvözletem!
Egy olyan problémám lenne, hogy ebben az évben kezdtem el a c++-t, és kaptam egy jó kis otthoni házit.
Egy játékot kell megírni. A feladat így néz ki:
"Játék írása esetén a feladat a két játékos játékának ellenőrzése, a nyertes megállapítása, és a játék adminisztrálása egy admin.txt állományba.
(Tak-Tix) Négyzet alakban korongokat helyezünk el. A játékosok felváltva húznak, bármelyik sorból vagy oszlopból, csak az a kikötés, hogy összefüggő csoportot kell elvenni, a levettkorongok között nem lehet hézag. Az veszít, aki az utolsót leveszi."
Nem is a program megírásával van kimondottan gondom, hanem a játékot nem nagyon értem
Google-n semmi leírás...
előre is köszönöm a segítséget
Emlékezz arra, hogy a kosárlabda a viselkedés játéka: ha eléred, hogy az ellenfeled másképp viselkedjen, mint ahogyan szokott legyőzöd-Bill Russel
ArchElf
addikt
AE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
Berenyimiki
csendes tag
Örök hála!
Köszönöm a segítséget!
Emlékezz arra, hogy a kosárlabda a viselkedés játéka: ha eléred, hogy az ellenfeled másképp viselkedjen, mint ahogyan szokott legyőzöd-Bill Russel
Berenyimiki
csendes tag
Jóestét mindenkinek!
egy olyan problémám van, hogy elmentettem devc++-ban a programom és mikor megnyitom, nem jelenik meg a forráskód, hanem a következőt látom:
[Project]
FileName=taktix.dev
Name=taktix
UnitCount=1
Type=1
Ver=1
ObjFiles=
Includes=
Libs=
PrivateResource=
ResourceIncludes=
MakeIncludes=
Compiler=
CppCompiler=
Linker=
IsCpp=1
Icon=
ExeOutput=
ObjectOutput=
OverrideOutput=0
OverrideOutputName=
HostApplication=
Folders=
CommandLine=
UseCustomMakefile=0
CustomMakefile=
IncludeVersionInfo=0
SupportXPThemes=0
CompilerSet=0
CompilerSettings=
[Unit1]
FileName=jatek.cpp
CompileCpp=1
Folder=
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[VersionInfo]
Major=0
Minor=1
Release=1
Build=1
LanguageID=1033
CharsetID=1252
CompanyName=
FileVersion=
FileDescription=Developed using the Dev-C++ IDE
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=
AutoIncBuildNr=0
mit tudok tenni?
Segítségeteket köszönöm.
Emlékezz arra, hogy a kosárlabda a viselkedés játéka: ha eléred, hogy az ellenfeled másképp viselkedjen, mint ahogyan szokott legyőzöd-Bill Russel
Berenyimiki
csendes tag
sziasztok!
Van egy lefordított o kiterjesztésű fájlom, és azt kéne visszaalakítani forráskóddá.
Van erre valami módszer?
Emlékezz arra, hogy a kosárlabda a viselkedés játéka: ha eléred, hogy az ellenfeled másképp viselkedjen, mint ahogyan szokott legyőzöd-Bill Russel
Jester01
veterán
Általában nincs.
Jester
Gabby
csendes tag
Sziasztok.
Tapasztalatokat szeretnék kérni tőletek az ügyben, hogy melyik programok azok, amivel oylan meg lehetne valósítani, hogy egy épületnek megadom pl az alaprajzát meg a belméretet, és az megrajzolja nekem azt. Csak sematikus rajz kellene, nem kell nagyon csúcs szuper, de ha van olyan akkor természetes, hoyg az is jó.
Amihez kellene: Szakdolgozatot kezdek írni és ahhoz kellene nekem egy ilyen progi a nyelv amin írom C és C#.
Válaszaitokat előre is köszönöm...
Üdv, Gábor
!wannabe
tag
Sziasztok,
Adott az alábbi kód: code
A feladat lesz, hogy hasonló kódokból papíron megmondjuk a kimenetet. Valaki tudna segíteni abban, hogy hogy működik ez a kód és mitől lesz ez a kiemenet: BVWMWFAE
A segítséget előre is köszi
!wannabe
tag
Doc, HUP-on is doc vagy? Vagy az egy másik doc?
[ Szerkesztve ]
doc
nagyúr
ezt nem te kerdezted par honapja? amugy igen
!wannabe
tag
nekem is eszembe jutott, hogy volt már róla szó, de sztem volt már fél éve is és nem emlékeztem a válaszra
Jester01
veterán
Unknown paste ID, it may have expired or been deleted!
Jester
!wannabe
tag
Jaja mert 1 napos élettartama volt. Nem akartam nagyon hosszúéletűre a sulis dolgokat.
MIndenestre itt fellelhető.
Az előbb a kimenetnél lehagytam az elejéről egy E karaktert. Szóval ha lefuttatom ezt a kimenetet adja: EBVWMWFAE
[ Szerkesztve ]
Jester01
veterán
Hát ez gyönyörű
Mindenesetre más dolgod nincs mint fogni egy debuggert és végiglépkedni melyik P hívások futnak le. Persze ezt kézzel is csinálhatod. Pl. kezdésnek:
1. int main()-ben indulunk, 48. sor. Itt van egy U<E> példány ennek hívódik a P metódusa a következő sorban. Nézzük az hol van.
2. 42. sor. N w;w.P(); aholis N=E mivel azzal lett példányosítva. Ugrás tehát az E.P()-hez
3. 13. sor, kiíródik az E, visszatérés a hívóhoz
4. M q;q.P(); mivel itt M=M<N> és N=E ezért ugrás M<E>.P()-hez
5. 29. sor, kiíródik a B, visszatérés a hívóhoz
stb.
Jester
!wannabe
tag
jaja, köszi, egyébként ma összeültünk a többiekkel és elmagyarázták, hogy működik csak nem akartam totál hülyén odamenni az összeülésre, de nem tartott sokáig amég felfogtam szerencsére. Sajna magamtól nem jöttem rá.
Azért kösz.
G4bi89
senior tag
Hellosztok
Van itt valaki aki zseni programozásból azon belül is C++ ?
Kellene egy kis help úgy nagy vonalakban bár ha unatkozik vki akkor összedobhatja az egészet.
Következő lenne a feladat:
Kérjen be a program a felhasználótól egy tetszőleges versszakot (max. 8 sor), majd állapítsa meg, hány betűből, ezen belül hány magánhangzóból áll a versszak. Írja ki az egyes betűk darabszámát Csak a betűket szabad számolni, a szóközöket és az írásjeleket nem.
Előre is nagy köszönet bármiféle segítségért.
"egyenlőre muszály biciglizni külömben..."
doc
nagyúr
megengeded hogy valaki megcsinalja helyetted? de jo fej vagy, koszi... es te mit csinalsz, viszed alairatni az indexet?
ez nem ingyenes hazifeladat-megoldo topic, itt segitseget lehet kerni ha szukseged van ra. ha elakadsz, leirod hogy meddig jutottal el, mi nem megy, es szivesen segitunk
Gyuri16
senior tag
tobbnyire nem szokjuk csak ugy megirni mas feladatat. konkret kerdesnel biztos kapsz segitseget, de ez igy keves. mi az amit meg tudsz csinalni, es mi az amit mar nem?
nagy vonalakban:
beolvasod a versszakot egy stringbe
vegigmesz a string osszes indexen, es megszamolod hany betu/maganhangzo van (itt ellenorizni kell, hogy ne szokoz, vagy irasjel legyen, es kulon figyelni kell a maganhangzokra)
kozben szamolod az egyes betuk darabszamat is, ha hasznalhatsz stl algoritmusokat, akkor nagyon egyszeruen pl egy map-ban eltarolhatod oket (betu -> darabszam alakban). ha nem akkor tombot hasznalhatsz, amit a betukkel indexelsz (atalakitva szamokka)
Nem vagyok egoista, csak uborkagyalu!
Téma tudnivalók
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
Mai Hardverapró hirdetések
prémium kategóriában
- XFX RX 6600 XT SPEEDSTER SWFT 210
- AKCIÓ Új Dobozos Macbook Pro dokkoló új ára 70.000 forint
- ThinkPad Hybrid USB -C USB -A Dock 40AF Új ára 80.000 Forint Ingyen szállítás
- Xiaomi Redmi Note 9s 128/6 GB 34.9E !!!
- Új Hp Pavilion 15-eh Fémházas Szuper Laptop 15,6" -30% AMD Ryzen 7 5700U 8Mag 16/1TB FHD MATT
ingyenes kategóriában
- Új állapotú.11.Generációs Core i3-Lenovo Laptop-Magyar-Legolcsóbban-fél év garival.
- Huawei P20 Pro Kártyafüggetlen hibátlan telefon
- TOP PC konfig /i7 14700KF, 32GB DDR5 RAM, 1TB Gen4 SSD/ szuper akciós! BeszámítOK
- Linksys EA6900
- DELL OptiPlex 3040 SFF / i3-6100 - i5-6500 - i7-6700 / HDMI / DVD-RW / több db / 27% áfás számla