Jump to content
GSForum - Segélyvonal

Hogyan fogjak hozzá?


LaCeE the CS king

Recommended Posts

LaCeE the CS king
Posted

Sziasztok!

 

Eléggé érdekes, különös, mégis átlagos és megszokott helyzetben állok. A számítógépemet, a programokat stb. megtanultam kezelni, és most szeretnék megtanulni programozni. Volt, aki kezdésnek a Pythont ajánlotta, de nekem az már magas. Hogy kezdjek hozzá, mivel, és kinek a segítségével?

 

Kérlek segítsetek, mert ennek szeretném szentelni az életem, hiszen a számítógépezés a véremben van. Eddig még senki sem tanított, és mostanra megtanultam normálisan kezelni.

 

Válaszaitok elõre is köszönöm!

 

Üdv,

Laci

Kovács Dávid ( Davs )
Posted

Szerintem kezdd HTML-lel. És ha elragad a webprogramozás, akkor meg fogod tanulni a PHP-t is, azután már nem okoz gondot a C alapú programozás(mert hát a PHP hasonlít a C -re)

Posted

Szerintem meg kérdezzük meg elõször a kollégát, hogy ugyan mit is szeretne programozni, mármint mihez fûlik a foga. Aztán majd ehhez fogunk eszközt ajánlani.

LaCeE the CS king
Posted

Szóval...

Nem tudom, mi mifán terem, semmit sem tudok errõl, viszont bármi is az, ami kapcsolatos a számítástechnikával, szeretném tudni :)

Az jó, ha Front Page-ben megcsinálok valamit grafikusan, és utána megnézem html-ben, hogyan írta az le, és így gyakorolgatom, tanulgatom?

Amúgy erre szeretném alapozni az életem, mert könnyen tanulok, van hozzá érzékem... viszont 14 évesen, eléggé hülye fejjel, nem megy egyedül, kérlek titeket, segítsetek :)

Posted

Ez így nem fog menni. Elõször döntsed el, mivel szeretnél fogllkozni, mert a "minden, ami a géppel kapcsolatos" kicsit tág fogalom.

Tûzzél ki egy célt, és akarad is elérni.

LaCeE the CS king
Posted

Értem... Hát...

Milyen lehetõség vannak, és melyiket ajánlanád?

Posted

a. Szuper animációs honlapokat szeretnél készíteni

b. Csillogó-villogó grafikákra vágysz

c. Szebbnél-szebb differenciálegyenleteket szeretnél megoldani

d. Különbözõ szövegállományokat szeretnél feldolgozni

e. Statisztikai elemzést szeretnél adatokról készíteni

f. Képeket szeretnél elemezni (pl. ujjlenyomatfelismerés.)

g. Nagyon kellene már egy katalógusprogram a CD-idrõl

h. A saját készítésû robotporszívódat szeretnéd vezérelni

i. A windows kernelt szeretnéd átírni

...

 

Te szeretnél megtanulni programozni. Nyilván vannak elképzeléseid, hogy milyen programokat szeretnél írni. Mivel szeretnél foglalkozni. Ha nem, akkor hiába kapsz tippeket...

Szerintem programozni tanulni "csak úgy" nincs értelme, annál ez több energiabefektetést igényel. Akkor foglalkozz csak vele, ha tényleg használnád is bármire, ami neked örömet szerez. Azt viszont magadnak kell tudnod, mi az. Én hiába élvezem, ha kiszámítom egy kétváltozós binomiális eloszlás elfogadási tartományát, ha téged ez éppen nem érdekel. ;)

  • 12 years later...
Posted

Sziasztok,

elég régen írt már ide valaki/bárki, de megpróbálom hátha.

 

TXT Szövegállományt szeretnék feldolgozni, excel file-t, listát, kimutatást szeretnék belőle készíteni. Adatbázisból kinyert adatokat tartalmaz, régi programból, a kinyert adatok formáján nem lehet változtatni.

Txt-nek olyan az elrendezése, hogy nyomtatásban jól nézzen ki. Vannak benne üres sorok és elválasztó jelként ______ -aláhúzást tartalmazó sorok. Vannak benne összetartozó adatok több sorban, közbeékelődve más adattal. (gondolom a nyomtatási kinézet miatt.)

 

Ha excelben megnyitom a txt-t és a "Szövegbeolvasó varázsló" -ban fix szélességű mezőhatárolókat jelölök, akkor széttördeli az összetartozó adatokat amik egyébként is két sorban vannak.

Ha elválasztó karakternek a space-t jelölöm, akkor elválasztja az összetartozó-1 cellába való adatokat.

 

Több file van és több ezer soros, ezért jó lenne valami automatizmus pl. a keresés és csere eljárásra, amivel txt-ben javítani tudom az adatokat, hogy legalább egymás alatt legyenek az egyforma adatok ill. a felesleges sorokat törölni tudnám. Ehhez tudtok-e valami programot, programozást javasolni?

 

Lehet kicsit bonyolultam fogalmaztam meg a problémát, de nagyon szeretném megoldani, hogy ne egyesével kézzel kelljen javítgatni.

Posted
Vannak benne összetartozó adatok több sorban, közbeékelődve más adattal. (gondolom a nyomtatási kinézet miatt.)

 

Ez a legnagyobb gáz benne, mert ez megöli a soronkénti algoritmikus Search Replace-t, akár kézzel csinálod, akár programozni próbálnád. Nincs nagyon ötletem, hogyan lehetne. :(

Posted

Első körben - talán - át lehetne emelni Wordbe, és "szövegből táblázat" funkcióval átalakítani, hátha...

A táblázatot aztán vagy sikerül Excelbe áttenni, vagy nem. :(

Posted

Így elsőre hallásra szerintem Notepad++-ban regex-szel meg lehetne oldani, bár jó lenne, ha pár sort be tudnál ide másolni.

Posted
______________________________________________________________________________________________
     XN/570   
         .   kapszulás                            0.0366                0.00           
         kávéfőző
         ____________________________________________________________________________________  
                                   ÖSSZESEN:      0.0366                0.00          
______________________________________________________________________________________________
     HGG/979   
         .   gázfűtő                              3.3933               96.97          
                           ------------------------------------------------------------------
                                    5             9.3966               67.99        
                                    6             9.6396               30.09        
                                    7             0.0653                0.37        
         ____________________________________________________________________________________  
                                   ÖSSZESEN:      3.3933               96.97          
______________________________________________________________________________________________
     EG/53   
         .   reflektor                            3.9569               96.97          
                           ------------------------------------------------------------------
                                    5             5.6336               36.60        
                                    6             0.5969                6.69        
                                    7             0.6553                7.33        
         ____________________________________________________________________________________  
                                   ÖSSZESEN:      3.9569               96.97          
______________________________________________________________________________________________
     06/56   
         .   lombszívó                            5.9997               60.69          
                           ------------------------------------------------------------------
                                    5             9.6330               69.37        
                                    7             0.7737               90.76        
         ____________________________________________________________________________________  
                                   ÖSSZESEN:      5.9997               60.69          
______________________________________________________________________________________________

    026/2    
         .   mosógép                2             3.5089               26.67           
         elöltöltős keskeny          ____________________________________________________________________________________  
                                   ÖSSZESEN:      3.5089               26.67          
______________________________________________________________________________________________

Posted

Köszi az ötleteket. Megörültem a Word-be majd onnan excelbe ötletnek, de eddig nem vezetett eredményre. A space-ek száma nem egyenlő az egyes értékek között attól függően hány karakter a beírt érték.

 

Bemásoltam egy rövid példát, ez txt nyomtatásában szép, egymás alatt vannak az egyforma értékek. Ez a nézőke kicsit áttördelte, de talán nagyjából látható a probléma.

Valahogy így szeretném egy sorba az értékeket:

 

XN/570 kapszulás kávéfőző 0.0366 0.00

Posted

Próbáltam rajta segíteni, de a hülye fórum így is "belenyúl", de talán jobban látszik, mi akarna lenni.

 

Én is Notepad++ Search/Replace-re gondoltam odafent, de az is csak soronkénti feldolgozást tud, azt meg megöli, ha egy mező több sorba van törve...

Posted

Pedig a RegEx + C# olyan, mint a vídia: mindent visz. A betett mintából kiindulva pillanatok alatt össze lehet szedni az adatsorokat:

 

var file = System.IO.File.ReadAllText(@"C:\MyTable.txt");
var searchPattern = @"[A-Za-z0-9/]+(\s|\.)+([a-záéíóöőúüű]+\s+)+([0-9]*\s*)[0-9]+(\.)[0-9]+(\s+)[0-9]+(\.)[0-9]+(\s+)([a-záéíóöőúüű]+\s+)*(---|___)";
var dataLine = System.Text.RegularExpressions.Match(file, searchPattern);

while (dataLine.Success)
{
 // Data line processing
}

 

Az egyes adatsorokból az adatok kinyerése a minta alapján remélhetőleg menni fog. Az Excel-tábla legenerálása a programból szintén házi feladat.

Posted

Ez nagyon gyönyörűségesen néz ki, de nem látom hogyan csinál ebből (egyszerűsített példa):

 

XN/570
       kapszulás        0.0366        0.00               
       kávéfőző

 

ezt?

 

XN/570 kapszulás kávéfőző        0.0366        0.00

 

Hol van benne a mesterséges intelligencia, ami észreveszi az x. sor vizsgálata közben, hogy az x+1. sorba le van törve a termékmegnevezés fele, és azt fel kéne rántani az előző sorban levő termékmegnevezés mögé? Hogy az XN/570-re külön ki ne térjek...

 

Posted

Semmiféle mesterséges intelligencia nem kell ehhez. Amit írtam, az csak annyit csinál, hogy kinyeri az adatsorokat egyesével a dataLine nevű, Match típusú objektumpéldányba. Az egyes adatsorok feldolgozását a while ciklus magjában lehet megírni. Például úgy, hogy az adatsorban szépen egymás után megkeresed a neked kellő mezőértékeket RegExszel (a szép kifejezésem egyes részeit újrahasznosítva), bepattintod őket egy-egy változóba (a törtszámnál kis logika és parse-olás kelleni fog, ha nem stringként akarod tárolni, hanem pl. számolni akarsz vele), aztán ha az adatsorstring végén még talál szavakat a keresés, akkor azokat hozzácsapod a sor elejéről már megszerzett terméknévrészhez. Kész.

 

Aztán a változókkal már azt csinálsz, amit akarsz. Kidumpolhatod őket egy szép TXT-be, amit szépen megesz már az Excel. De legenerálhatod közvetlenül is az Excel-táblát, erre is megvannak a megfelelő objektumok és függvények, nem kell feltalálni a meleg vizet.

 

Az XN/570-et pedig berántja a [A-Za-z0-9/]+, oszt' jónapot.

 

Konkrétan:

 

while (dataLine.Success)
{
 var identifier = System.Text.RegularExpressions.Match(dataLine.Value, @"[A-Za-z0-9/]+");
 var name = System.Text.RegularExpressions.Match(dataLine.Value.Substring(identifier.Index + identifier.Length), @"([a-záéíóöőúüű]+\s+?)+");
 var firstNumber = System.Text.RegularExpressions.Match(dataLine.Value.Substring(identifier.Index + identifier.Length + name.Index + name.Length), @"\s+[0-9]+\s+?");
 // ...
}

 

Hadd ne írjam végig. A Match objektumpéldányok Value tagja fogja a találati stringet adni. Ami szavakat a sor végén találsz, azokat meg hozzácsapod a name.Value-hoz. (Persze nem szó szerint, azt hiszem, a Value-nak csak hozzáférési metódusa van, de szarni rá, összefűzöd egy új stringbe a kettőt.)

Posted

Vagy én nem akarom megérteni, hogy ez hogy megoldás a fenti több soros, a termék nevet több sorba törve tartalmazó mintára (szavak a sor végén?! milyen szavak a sor végén?), vagy te nem akarod megérteni a problémát. :D

 

Mindegy, túlbeszéltük.

Posted

Na, szerinted melyik? :D Nem érdekel, hogy hány sor, felőlem 26 sorban is lehet a terméknév. Én az egész adatsort (ami az azonosítóval (XN/570) kezdődik, és a "kávéfőző" szóval, majd az elválasztóvonallal (---, illetve ___) végződik) egyetlenegy adatsorként kezelem, és berántom a dataLine objektumpéldányba. Tökmindegy, hogy hány sortörés van ebben az adatsorban belül, nekem egyetlen string az egész, és ebben a stringben turkálok újabb és újabb RegExekkel, kinyerve az adatsoron belül az egyes adatokat (azonosító, terméknév, számok, terméknév vége). És ezt ismétlem minden egyes adatsorra, amit meg tudok találni a fájlban a fenti RegExszel. (A sortörés nem más, mint egy ún. white space karakter, amit a regular expression language-ben a \s-sel lehet helyettesíteni, pont úgy, mint a sima szóközt.) Nyugodtan kipróbálhatod a reguláris kifejezéseimet Notepad++-ban, ha nem világos.

 

Ha azt mondod, hogy ez egy bonyolult programozási feladat, én eret vágok magamon. :D

Posted

Ha az életem (vagy a munkahelyem) múlna rajta, valószínűleg Delphiben állnék neki, mert ahhoz még értek valamennyire, aztán vagy sikerülne, vagy nem. :(

Posted

Bármilyen nyelven meg lehet írni. Még C-ben is, ahhoz is van RegEx library. Sőt, RegEx nélkül is meg lehet írni, csak úgy sziszifuszibb. Talán C#-ban vagy Pythonban a legkényelmesebb, de persze kinek mi. (Delphit én nem használnék, inkább Qt, ha kell GUI.)

 

Nyilván akinek nem rutinja a programozás, annak tűnhet ez első blikkre nehéznek, de egy szoftverfejlesztő ennél csak komplexebb problémákkal szembesül.

Posted

Sajnos nem rutinom a programozás, Pascal-nál leragadtam és amnéziába esotem, így a fenti programsorokból nem sokat értek.

Rettentő zavaró.

Nem volt időm egyáltalán foglalkozni ezzel, de záros határidőn belül megoldandó feladatról lévén szó, próbálkozom a Notepad++-szal és Excel kombinációjával.

 

Köszönöm szépen mindenki jószándékát, aki foglalkozott a dologgal.

 

Esetleg még abban tudnátk ötletet adni hol/mivel/hogyan érdemes kezdeni, hogy hasonló feladatot meg tudjak oldani?

csili-vili weblap készítés nem érdekel, de az ilyen feladatok nagyon idegesítenek ha nem tudom megcsinálni. Sajnos ritkán jön szembe ilyen, hogy lenne benne rutinom.

Posted

Legyen neked gyereknap, megírtam: https://pastebin.com/5kXy1Wg1

 

Most nem volt kedvem XLSX létrehozásával szarakodni, CSV-ben is jó lesz, azt is tudod importálni már. Lefordítod Visual Studióban, futtatod (az elérési útvonalakat előtte írd át arra, ami neked jó). A létrejövő Table.csv-t importálod Excelben, beállítod a karakterkódolást UTF-8-ra, és kész is vagy (az újabb Excelek csodásan meg is formázzák neked automatikusan).

 

Ha nincs mivel lefordítanod, vagy nincs kedved fordító telepítésével szenvedni, akkor itt az én binárisom: http://www.rapidshare.com.cn/Wyumdzi Ha ezt használod, akkor arra figyelj, hogy mindenképp a C:\Data\MyTable.txt fájlban legyen a feldolgozandó cucc, különben a program exceptiont dob (nem írtam bele kivételkezelést).

 

Ha fájlfeldolgozás terén szeretnél nagyobb spíler lenni, ajánlom megismerésre a regular expression language-et: https://goo.gl/FWoMfy Ennek ismerete már önmagában is nagyon hasznos tud lenni, de persze akkor lehet használni a leghatékonyabban, ha tudsz mellé valamilyen nyelven programozni is.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...