<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Muráti Ákos honlapja &#187; Oktatás</title>
	<atom:link href="http://murati.hu/category/c5_oktatas/feed/" rel="self" type="application/rss+xml" />
	<link>http://murati.hu</link>
	<description>Muráti Ákos személyes és szakmai oldala</description>
	<lastBuildDate>Wed, 11 Aug 2010 05:08:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>P2P fájlcserélő hálózat és kliens</title>
		<link>http://murati.hu/c4_cikkek/p2p-fajlcserelo/</link>
		<comments>http://murati.hu/c4_cikkek/p2p-fajlcserelo/#comments</comments>
		<pubDate>Sat, 16 Jan 2010 06:21:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cikkek]]></category>
		<category><![CDATA[Oktatás]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[BME]]></category>
		<category><![CDATA[Labor]]></category>
		<category><![CDATA[p2p]]></category>

		<guid isPermaLink="false">http://murati.hu/?p=463</guid>
		<description><![CDATA[Médiakommunikáció labor feladatom egy Napster szerű P2P fájlcserélő hálózat és kliens elkészítése volt. A  szerver oldali funkciókat mysql adatbázis felett php nyelven valósítottam meg, ahol a szerver-kliens protokollüzenetek XML-RPC hívásokon keresztül cserélődnek, a klienseket pedig .NET C# nyelven valósítottam meg, ahol a kliens kommunikáció aszinkron socket kapcsolatokra és többszálú végrehajtásra épül. A rendszer támogatja a [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a rel="lightbox[]" href="http://murati.hu/gallery/programok/mk091_p2p.png"><img class="ngg-singlepic ngg-left" src="http://murati.hu/gallery/programok/thumbs/thumbs_mk091_p2p.png" alt="Médiakommunikáció labor - P2P fájlcserélő" /></a>Médiakommunikáció labor feladatom egy Napster szerű P2P fájlcserélő hálózat és kliens elkészítése volt. A  szerver oldali funkciókat mysql adatbázis felett php nyelven valósítottam meg, ahol a szerver-kliens protokollüzenetek XML-RPC hívásokon keresztül cserélődnek, a klienseket pedig .NET C# nyelven valósítottam meg, ahol a kliens kommunikáció aszinkron socket kapcsolatokra és többszálú végrehajtásra épül. A rendszer támogatja a beragadt kliensek és letöltések szerver oldali ütemezett kirúgását, a hamis megosztások automatikus törlését és a kliensek automatikus frissítését is.<span id="more-463"></span> Újszerű megközelítés, hogy a bejelentkezéseket és megosztásokat indexelő szerver oldali logika on nem igényel állandó futást, terhelhetősége csak a webszerver teljesítőképességétől függ. A sietősen befejezett rendszer számtalan hibát tartalmaz &#8211; főleg a többszálú letöltéskezelő modulban &#8211; , de alapvetően működőképes és tanulmányi célokra és más házikhoz jó kiindulópont lehet.  Az egyetemi tesztrendszer és telepíthető kliens elérése: <a href="http://turul.eet.bme.hu/~mk091/index.php" target="_blank">http://turul.eet.bme.hu/~mk091/index.php</a> A rendszer tervezetének dokumentuma és prezentációs anyag Darázsi László és Szeles József munkája.</p>
<p><a href="http://murati.hu/media/mk091_p2p_project.pdf">P2P Fálcserélő dokumentum (PDF) letöltése</a></p>
<p><a href="http://murati.hu/media/mk091_p2p_presentation.pptx">P2P Fájlcserélő Prezentáció (PPTX) letöltése</a></p>
<p><a href="http://murati.hu/media/mediakomm_p2p.zip">P2P Fájlcserélő Szerver és Kliens (ZIP) letölése</a></p>
]]></content:encoded>
			<wfw:commentRss>http://murati.hu/c4_cikkek/p2p-fajlcserelo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Élkeresés GLEE Gráfokban LINQ-val</title>
		<link>http://murati.hu/c6_oracle/elkereses-glee-grafokban-linq-val/</link>
		<comments>http://murati.hu/c6_oracle/elkereses-glee-grafokban-linq-val/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 08:15:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Oktatás]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[GLEE]]></category>
		<category><![CDATA[LINQ]]></category>

		<guid isPermaLink="false">http://murati.hu/?p=404</guid>
		<description><![CDATA[Ahogy azt már korábbi bejegyzésemben említettem a Microsoft GleeGraph objektum a Node-októl eltérően alapból nem rendelkezik élkeresési funkciókkal, de élek még saját azonosítókkal sem rendelkeznek. Amennyiben egy élet szeretnénk kikeresni, mert mondjuk egy Property-jét vagy UserData-ját szeretnénk módosítani, saját eljárást kell írnunk ehhez. A .NET 3.5-től a fejlesztők rendelkezésére áll egy rendkívül hatékony ezsköz a [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a rel="lightbox[]" href="http://murati.hu/gallery/microsoft/linq.gif"><img class="ngg-singlepic ngg-left" src="http://murati.hu/gallery/microsoft/thumbs/thumbs_linq.gif" alt="LINQ in action" /></a>Ahogy azt már korábbi bejegyzésemben említettem a Microsoft GleeGraph objektum a Node-októl eltérően alapból nem rendelkezik élkeresési funkciókkal, de élek még saját azonosítókkal sem rendelkeznek. Amennyiben egy élet szeretnénk kikeresni, mert mondjuk egy Property-jét vagy UserData-ját szeretnénk módosítani, saját eljárást kell írnunk ehhez. A .NET 3.5-től a fejlesztők rendelkezésére áll egy rendkívül hatékony ezsköz a LINQ (Language Integrated Query) melyek segítségével SQL szerű lekérdezéseket futtathatunk szinte tetszőleges Objektum kollekción (LINQ to Object) vagy adatbázis forrásokon (LINQ to SQL). Miért ne írhatnánk LINQ query-ket élhalmazokra.<span id="more-404"></span></p>
<h4 style="text-align: justify;">A LINQ-ról általában</h4>
<p style="text-align: justify;">A LINQ query-k kísértetiesen hasonlítanak az SQL lekérdezésekre, különbség csupán annyi, hogy a select kulcsszó és maga a kiválasztandó objektum deklarációja hátra lett csapva.</p>
<pre>var halmaz = from sor in Kollekcio
where sor.property  == "valami" &amp;&amp; sor.propery2=="valami2"
select sor;</pre>
<p style="text-align: justify;">Az így kapott eredményhalmaz is szintén egy kollekció lesz függetlenül attól, hogy hány elemet tartalmaz, melyeken használhatóak a kollekcióknár már jól megszokott First(), Last(), Next(), OrderBy(), Sum(),  Average(), Contains() és még több száz generikus listaeljárás általunk definiált delegate-kkel de akár a jó öreg foreach -et is használhatjuk.</p>
<pre>SajatObjektum o = halmaz.First&lt;SajatOjektum&gt;();</pre>
<h4>Él keresése GleeGraph-ban</h4>
<p><a rel="lightbox[]" href="http://murati.hu/gallery/ms_agl/glee_edge finder.png"><img class="ngg-singlepic ngg-right" src="http://murati.hu/gallery/ms_agl/thumbs/thumbs_glee_edge finder.png" alt="GLLE élkeresés Label Frissítéssel" /></a>Adott egy GleeGraph g gráfobjektum, melynek irányított éleit a g.Edges Edge típusú Generikus Lista tartalmazza és meg szeretném keresni az összes valamilyen A és valamilyen B tulajdonságú node között futó élet. Mivel minden egyes referenciaként hivatkozik azokhoz a csomópontokhoz (SourceNode és TargetNode) melyekhez kapcsolódik a megoldás LINQ-ban az alábbi C# kódot eredményezi, ha a Node-okat épp azonosítójuk alapján határozzuk meg:</p>
<pre>var vk = from e in g.Edges
where e.SourceNode.Attr.Id =="A" &amp;&amp;
e.TargetNode.Attr.Id == "B"
select e;</pre>
<p>vagy irányítatlan esetben:</p>
<pre>var vk = from e in g.Edges
where (e.SourceNode.Attr.Id =="A" &amp;&amp; e.TargetNode.Attr.Id == "B") ||
(e.SourceNode.Attr.Id =="B" &amp;&amp; e.TargetNode.Attr.Id == "A")
select e;</pre>
<p>Egyszerű, mint az egyszeregy. Ha többet szeretnél még tudni a LINQ-ról, klikk ide: <a href="http://msdn.microsoft.com/en-us/netframework/aa904594.aspx" target="_blank">LINQ az MSDN-en</a></p>
]]></content:encoded>
			<wfw:commentRss>http://murati.hu/c6_oracle/elkereses-glee-grafokban-linq-val/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft GLEE &#8211; Gráfok vizualizációja .NET alatt</title>
		<link>http://murati.hu/c4_cikkek/microsoft-glee/</link>
		<comments>http://murati.hu/c4_cikkek/microsoft-glee/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 17:47:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cikkek]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Oktatás]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://murati.hu/?p=402</guid>
		<description><![CDATA[Féléves önállólabor gyakorlatom egy Levelezés elemző rendszer elkészítése. Minden minden elemző szoftvernek, ennek is az a célja, hogy a végfelhasználó által feltett kérdésekre kielégítő és szemléletes válaszokat tudjon nyújtani. Ennek egyik lehet formája a grafikus megjelenítés. Projektem elkészítéséhez szükségem volt egy olyan eszközre, mely hatékonyan képes tetszőleges gráfokat ábrázolni, ugyanakkor interaktív működést biztosít, azaz képes [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a rel="lightbox[]" href="http://murati.hu/gallery/ms_agl/msagl_sample.png"><img class="ngg-singlepic ngg-left" src="http://murati.hu/gallery/ms_agl/thumbs/thumbs_msagl_sample.png" alt="MS AGL sample" /></a>Féléves önállólabor gyakorlatom egy Levelezés elemző rendszer elkészítése. Minden minden elemző szoftvernek, ennek is az a célja, hogy a végfelhasználó által feltett kérdésekre kielégítő és szemléletes válaszokat tudjon nyújtani. Ennek egyik lehet formája a grafikus megjelenítés. Projektem elkészítéséhez szükségem volt egy olyan eszközre, mely hatékonyan képes tetszőleges gráfokat ábrázolni, ugyanakkor interaktív működést biztosít, azaz képes érzékelni, ha a felhasználó valamilyen egér vagy más eseményt idéz elő egyik élén vagy csomópontján.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><span id="more-402"></span>Hosszas keresgélés után rábukkantam a Microsoft Research &#8211; VIBE csoport egyik kísérleti fejlesztésére a Microsoft Automatic Graph Layout (MSAGL) csomagra, korábbi nevén a Graph Layout Execution Engine (GLEE) -re, mely oktatási és kísérleti célokra szabadon használható.</p>
<p style="text-align: justify;">A GLEE telepítőkészlete a .NET osztályokkal, dokumentációkkal és példa kódokkal összesen 2MB-ot foglal gépünkön. A csomag egyébként 3 komponensből, a gráf tárolásáért és alapműveleteiért felelős Microsoft.GLEE, a megjelenítésért, színezésért, él és node ábrázolásért felelős Microsoft.GLEE.Drawing és az interaktív működésért felelős Microsoft.GLEE.GraphViewerGDI -ből áll összesen. Használata rendkívül egyszerű és kényelmes.</p>
<h4>GleeGraph</h4>
<p style="text-align: justify;">Gráf objektum létrehozásához a GleeGraph osztályt kell példányosítanunk. Ennek tagjai lehetnek Node -ok és Edge-ek, melyeket az AddNode() és a AddEdge() metódusokkal vehetünk fel.</p>
<pre>GleeGraph graph = new GleeGraph();</pre>
<h4>Node</h4>
<p style="text-align: justify;">A GleeGraph Node-ok rendelkeznek saját string ID-val, amit pédányosításkor kell megadnunk és ezzel az azonosítóval kereshetjük vagy hivatkozhatunk rájuk később, továbbá képesek eltárolni grafikájukat és rendelhetőek hozzá tetszőleges Object-ek, ha tárolásra és használnánk ezeket a csomópontokat.</p>
<pre>Node a = new Node("a", new Ellipse(w, h, new P()));
Node b = new Node("b", CurveFactory.CreateBox(w, h, new P()));
graph.AddNode(a);
graph.AddNode(b);</pre>
<h4>Edge</h4>
<p style="text-align: justify;">Az élek tárolására megvalósított osztály, amely két node között húzódik. Ezek az élek minden esetben irányított éleknek, melyek konstruktoruk első Node-jából a másodikba mutatnak. Természetes ábrázolás szempontjából az irányítottság kérdése egyszerűen megoldható ha nyilak helyett csak szakaszokat használunk. Az Edge objektumok azonban a Node-okkal ellentétben nem rendelkeznek saját ID-val és a GleeGraph sem tartalmaz élkeresési eljárást, így ha ilyenre lenne szükségünk magunknak kell ezt megoldani.</p>
<pre>Edge e = new Edge(a, b);
e.ArrowHeadAtSource = true; //Nyíl irányjelzője
graph.AddEdge(e);
graph.AddEdge(new Edge(a,b));</pre>
<p style="text-align: justify;">A GleeGraph -ok ábrázolására használhatjuk saját metódusainkat, de rá is bízhatjuk  a GraphViewerGDI vezérlőre, melynek Graph Propery-jének átadva gráfunkat az automatikusan le is rendereli. Ezen kívül a GLEE képes hagyományos Graphics objektumot is adni kimenetként, így gráfjainak akár egy ASP oldalon is generálhatjuk.</p>
<p style="text-align: justify;">További infirmációk az MS AGL-ről és GLEE-ről:<br />
 <a href="http://research.microsoft.com/en-us/projects/msagl/" target="_blank">http://research.microsoft.com/en-us/projects/msagl/</a></p>
<p style="text-align: justify;">Amennyiben kereskdelmi szándékkal fejlesztünk az MS AGL 2007 csomag 280 USD -ért megrendelhető a Windows MarketPlace-en:<a href="http://store.microsoft.com/microsoft/Automatic-Graph-Layout-2007/product/4DD40C40" target="_blank"></p>
<p>http://store.microsoft.com/microsoft/Automatic-Graph-Layout-2007/product/4DD40C40</a></p>
]]></content:encoded>
			<wfw:commentRss>http://murati.hu/c4_cikkek/microsoft-glee/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OracleDataReader és DataGridView</title>
		<link>http://murati.hu/c6_oracle/odp-datareader-es-datagridview/</link>
		<comments>http://murati.hu/c6_oracle/odp-datareader-es-datagridview/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 07:16:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Oktatás]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[ODP .NET]]></category>

		<guid isPermaLink="false">http://murati.hu/?p=400</guid>
		<description><![CDATA[Gyakran felmerül a kérdés, hogy hogyan tudunk legegyszerűbben példányosítani objektumokat vagy kollekciókat egy adatbázislekérdezés eredményeiből és hogyan tudjuk ezeket táblázatosan megjeleníteni. A következő azt fogom bemutatni, hogy miként lehet egy tetszőleges query eredményét .NET objektumok kollekciójává tenni és hogyan jelenítsük meg azokat egy DataGridView controllal.
ODP driverrel lekérdezéseink eredményét, ahogy azt már előző bejegyzésemben is láthattuk, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a rel="lightbox[]" href="http://murati.hu/gallery/oracle_odp_samples/odp_winform_12.png"><img class="ngg-singlepic ngg-left" src="http://murati.hu/gallery/oracle_odp_samples/thumbs/thumbs_odp_winform_12.png" alt="ODP + WinForms Datagrid" /></a>Gyakran felmerül a kérdés, hogy hogyan tudunk legegyszerűbben példányosítani objektumokat vagy kollekciókat egy adatbázislekérdezés eredményeiből és hogyan tudjuk ezeket táblázatosan megjeleníteni. A következő azt fogom bemutatni, hogy miként lehet egy tetszőleges query eredményét .NET objektumok kollekciójává tenni és hogyan jelenítsük meg azokat egy DataGridView controllal.<span id="more-400"></span></p>
<p style="text-align: justify;">ODP driverrel lekérdezéseink eredményét, ahogy azt már előző bejegyzésemben is láthattuk, az <strong>OracleDataReader </strong>objektummal olvashatjuk végig. Ennek az olvasás utáni aktuális példánya tartalmazza az eredménymutató alatti éppen olvasott rekord mezőit. Látható, hogy egy eredménysor mezőinek átadásának legegyszerűbb módja, ha a példányosítani kívánt osztály konstruktorának  átadjuk az OracleDataReader aktuális példányát.</p>
<p style="text-align: justify;">Tegyük fel, hogy lekérdezésünk Lokáció adatokat fog eredményül adni, melynek első oszlopa egy number típusú ID, a többi pedig valamilyen szöveges érték lesz, amely tartalmazza az érintett rekord címét (STREET_ADDRESS), irányítószámát (POSTAL_CODE), stb..</p>
<p style="text-align: justify;">Ennek szellemében készítsük el  osztályunkat, amely prezentálni fogja eredményhalmazunk egy ilyen rekordját, melynek konstruktorra, épp a OracleDataReader típusú objektumot vesz át, amely kitölti az osztály megfelelő változóit az aktuális rekord oszlopai alapján. Fontos, hogy az egyes oszlopok értékeinek tárolásához használjunk publikus Property-ket, akár csak olvasható módon is. Ezek alkalmazása azért lényeges, mert e változók fogják jelölni a DataGridView táblázatunk egyes oszlopait. A rekord reprezentán osztály ezek után valahogy így nézhet ki:</p>
<pre>using System;
using Oracle.DataAccess.Client;

namespace odp_test_12
{
 class MyLocation
 {
 //Publikus property-k a DataGrid oszlopok megadásához
 public int ID { get; set; }
 public String Street { get; set; }
 public String PostalCode { get; set; }
 public String City { get; set; }
 public String State { get; set; }

 /* Téynleges LOCATIONS tábla Oszlopok:

 LOCATION_ID,
 STREET_ADDRESS,
 POSTAL_CODE,
 CITY,
 STATE_PROVINCE,
 COUNTRY_ID
 */

 //Konstruktor az adatok átvételére
 public MyLocation(OracleDataReader r)
 {
 //Indexelés a C-ben megszokottakhoz híven 0-tól kezdődik
 ID = r.GetInt32(0);
 Street = r["STREET_ADDRESS"].ToString();
 PostalCode = r["POSTAL_CODE"].ToString();
 City = r[3].ToString();
 State = r["STATE_PROVINCE"].ToString();
 }
 }
}</pre>
<p style="text-align: justify;">Ezután készítsük el Windows Formunkat. Vegyük fel a DataGridView objektumot ablakunkra, amit nevezzünk el dg_results-nak és tegyünk fel 3 gombot is a formra, melyek kötül az egyik a kapcsolat felépítéséért, a másik annak lezárásáért a harmadik pedig lekérdezésünk futtatásáért és az eredményhalmaz megjelenítéséért felel a dg_results vezérlőnkben.</p>
<p style="text-align: justify;">Kódolásnál az <strong>OracleConnection <em>conn </em></strong>változónkat deklarájuk Formunk osztályában globális objektumnak, hogy azt minden vezérlőből és eseményből elérhessük:</p>
<pre>public partial class Form1 : Form
{
OracleConnection conn;</pre>
<p>Ezután nincs más, mint elkészíteni ODP parancsainkat  az egyes  gomb oklenyomására. Dupla klikk a formon lévő gombra és írjuk meg a szokásos kapcslat-parancs-eredményolvasás kódrészleteket.</p>
<h4>Kapcsolódás gomb</h4>
<pre>private void bt_connect_Click(object sender, EventArgs e)
 {
 try
 {
 //Kapcsolat példányosítása a ConnectionString alapján:
 conn = new OracleConnection();
 conn.ConnectionString = tx_connstr.Text;

 //Kapcsolat megnyitása
 conn.Open();
 MessageBox.Show("Kapcsolat sikeresen felépítve:" + conn.ServiceName);

 }
 catch (Exception ex)
 {
 MessageBox.Show(ex.Message);
 }
 }
</pre>
<h4>Lekapcsolódás gomb</h4>
<pre>private void button2_Click(object sender, EventArgs e)
 {
 try
 {
 //Kapcsolat lezárása
 conn.Dispose();
 MessageBox.Show("Kapcsolat sikeresen lezárva:");
 }
 catch (Exception ex)
 {
 MessageBox.Show(ex.Message);
 }
 }</pre>
<h4>Lekérdezés futtatása</h4>
<p style="text-align: justify;">Ebben az esetben a már jól megszokott lekérdezés futtatáson kívül példányosítanunk kell az eredményhalmazt tároló listánkat is. Erre a célra használható a .NET ArrayList osztálya, mely a System.Collections névtérben található. Gombnyomásunk eseményének első sorába írjuk is be: ArrayList results = new ArrayList();</p>
<p style="text-align: justify;">Az eredményhalmaz végigolvasásakor szükségünk van az aktuális rekordok .NET példányaira, amiket ott helyben pédányosítunk az OracleDataReader instanciánkkal, majd beteszük azt az előbb kreált eredményhalmazba:</p>
<pre>MyLocation l = new MyLocation(dr);
results.Add(l);</pre>
<p style="text-align: justify;">Ezek után, ha minden jól ment az eredményhalmazunk a results ArrayListben található, melyek sorai az általun létrehozott MyLocation osztály egy-egy példánya. Innentől nincs más dolgunk, minthogy átadjuk ezt a változót a DataGridView-nak megjelenítésre az alábbi egyszerű utasítással:<br />
 dg_results.DataSource = results;</p>
<p style="text-align: justify;">Ennyi. A lekérdezés gomb futtatása ezek alapján valahogy így nézhet ki:</p>
<pre>private void bt_execute_Click(object sender, EventArgs e)
 {
 try
 {
 //Eredményhalmaz eltárolása
 ArrayList results = new ArrayList();

 //Kapcsolat, ha minden jól ment, már fel van építve
 //Új SQL utasítás kreálása
 OracleCommand cmd = new OracleCommand();
 cmd.Connection = conn;
 cmd.CommandText = tx_sqlquery.Text;

 //Szabad szöveges
 cmd.CommandType = CommandType.Text;

 //Eredményhalmaz kiolvasása DataReader-rel elöltesztelős ciklussal
 OracleDataReader dr = cmd.ExecuteReader();
 while (dr.Read())
 {
 MyLocation l = new MyLocation(dr);
 results.Add(l);
 }

 //Eredményhalmaz lezárása
 dr.Dispose();

 //Utasításpéldány felszabadítása
 cmd.Dispose();

 dg_results.DataSource = results;
 MessageBox.Show("Query lefutott: " + results.Count);

 }
 catch (Exception ex)
 {
 MessageBox.Show(ex.Message);
 }
 }</pre>
<p style="text-align: justify;">Ezek után, ha mindent jól csináltunk Connect-álás után és Execute gombok nyomogatására látnunk kell lekérdezésünk eredményét dg_result táblázatunkban valahogy így:</p>
<p>A teljes Visual Studio 2008 projekt letöltéséhez kattins ide:<a href="http://murati.hu/media/odp_test_12.zip">ODP Datagrid Project &#8211; Saját osztállyal</a></p>
]]></content:encoded>
			<wfw:commentRss>http://murati.hu/c6_oracle/odp-datareader-es-datagridview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Az első ODP .NET projekt</title>
		<link>http://murati.hu/c6_oracle/odp-console-application/</link>
		<comments>http://murati.hu/c6_oracle/odp-console-application/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 16:48:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Oktatás]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://murati.hu/?p=407</guid>
		<description><![CDATA[Az ODP, azaz az Oracle Data Provider .NET library kikísérletezésének legegyszerűbb módja, egy Console Application készítése. A teszteléshez a gyorsabb elérés érdekében saját Oracle Express adatbázisomat használtam a benne található példasémával. Oracle XE, ODP .NET és a Konzol, no meg az Exception-ök.
Az ODP sem bonyolultabb, mint bármilyen más .NET driver, előnye viszont abban rejlik, hogy [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a rel="lightbox[]" href="http://murati.hu/gallery/oracle_odp_samples/console_app.png"><img class="ngg-singlepic ngg-left" src="http://murati.hu/gallery/oracle_odp_samples/thumbs/thumbs_console_app.png" alt="ODP Console Demo" /></a>Az ODP, azaz az Oracle Data Provider .NET library kikísérletezésének legegyszerűbb módja, egy Console Application készítése. A teszteléshez a gyorsabb elérés érdekében saját Oracle Express adatbázisomat használtam a benne található példasémával. Oracle XE, ODP .NET és a Konzol, no meg az Exception-ök.</p>
<p style="text-align: justify;"><span id="more-407"></span>Az ODP sem bonyolultabb, mint bármilyen más .NET driver, előnye viszont abban rejlik, hogy nemcsak gyorsabb és hangolható elérést biztosít Oracle adatbázisainkhoz, de teljesen lefedi az abban elérhető adattípusok széles skáláját, melyek így különösebb trükközések nélkül elérhetőek közvetlenül .NET alkalmazásunkból.</p>
<h4 style="text-align: justify;">Referenciák</h4>
<p style="text-align: justify;"><a rel="lightbox[]" href="http://murati.hu/gallery/oracle_odp_samples/add_reference.png"><img class="ngg-singlepic ngg-right" src="http://murati.hu/gallery/oracle_odp_samples/thumbs/thumbs_add_reference.png" alt="VS Add ODP Reference" /></a>Hozzuk létre új ConsoleApplication projektünket a Visual Studio <strong>File/New/Project/Windows/ConsoleApplication</strong> menü választásával. Ahhoz, hogy használni tudjuk az ODP .NET csomag nyújtotta lehetőségeket hozzá kell adnunk projektünk referenciához, melyet a <strong>Solution Explorer</strong>-ben található <strong>References</strong> mappára jobb egérgombbal kattintva érhetünk el az <strong>Add Reference</strong> menün keresztül. Ezután a megjelenő .NET listából válasszuk az Oracle.DataAccess 2.0-s .NET runtime komponensét. Ezután pedig adjuk meg ezt a library-t a Program.cs fejlécébe: <strong>using Oracle.DataAccess.Client;</strong></p>
<h4 style="text-align: justify;">OracleConnection</h4>
<p style="text-align: justify;">Itt is, mint mindenhol szükségünk van egy kapcsolat objektumra, mely megnyitja és lezárja az adatbázissal a kommunikációs csatornánkat. Ennek megfelelője esetünkben az OracleConnection, melynek konstruktorának adhatjuk át a a megszokott connectionstringet.</p>
<pre style="text-align: justify;">string connStr= "Data Source=(DESCRIPTION=(ADDRESS_LIST="
                + "(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))"
                + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XE)));"
                + "User Id=HR;Password=teszt;";

OracleConnection conn = new OracleConnection(connStr);</pre>
<p style="text-align: justify;">Kapcsolatunkat nyithatjuk és zárhatjuk a conn.Open() illetve conn.Dispose() metódusokkal, de használhatjuk a .NET alatt jól megszokott using() {} kulcsszót is.</p>
<h4 style="text-align: justify;">OracleCommand</h4>
<p style="text-align: justify;">Felépített kapcsolatban vagy using eljárásban futtathatjuk SQL utasításainkat, melyeket az OracleCommand osztályból példányosíthatunk. Ezek lehetnek általunk szerkesztett SQL query-k vagy tárolt eljárás hívások, melyet a CommandType property-vel állíthatunk be.</p>
<pre style="text-align: justify;">conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "select deptno, dname, loc from dept";
cmd.CommandType = CommandType.Text;</pre>
<h4 style="text-align: justify;">OracleDataReader</h4>
<p style="text-align: justify;">Majd utasításunkat az ExecuteReader() metódussal futtatva, kiolvassunk annak eredményét az OracleDataReader osztály egy példányával, majd a példány Read() függvénnyel sorról sorra kiolvassuk amíg lehet és végül lezárjuk az egyes instanciákat a Dispose() metódussal</p>
<pre style="text-align: justify;">OracleDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Console.WriteLine(dr.GetInt16(0).ToString() + " - "
<pre> + dr["STREET_ADDRESS"].ToString());
}
dr.Dispose();
cmd.Dispose();
conn.Dispose();</pre>
<p>
</pre>
<p style="text-align: justify;">A Teljes mintakódunk így az alábbiak szerint néz ki:</p>
<pre style="text-align: justify;">using System;
using System.Data;
using Oracle.DataAccess.Client;

namespace ConsoleApplication1
{
 class Program
 {
 static void Main(string[] args)
 {
 string connStr = "Data Source=(DESCRIPTION=(ADDRESS_LIST="
 + "(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))"
 + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XE)));"
 + "User Id=HR;Password=teszt;";

 OracleConnection conn = new OracleConnection(connStr);
 conn.Open();

 OracleCommand cmd = new OracleCommand();
 cmd.Connection = conn;
 cmd.CommandText = "SELECT * FROM LOCATIONS";
 cmd.CommandType = CommandType.Text;

 OracleDataReader dr = cmd.ExecuteReader();
 while (dr.Read())
 {
Console.WriteLine(dr.GetInt16(0).ToString() + " - "
 + dr["STREET_ADDRESS"].ToString());
 }

 dr.Dispose();
 cmd.Dispose();
 conn.Dispose();

 Console.ReadLine();
 }
 }
}
</pre>
<p>A forráskód letöltéséhez kattint ide: <a href="http://murati.hu/media/odp_console_sample_01.zip">ODP .NET Első Console Demo Projekt</a></p>
]]></content:encoded>
			<wfw:commentRss>http://murati.hu/c6_oracle/odp-console-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle blog</title>
		<link>http://murati.hu/c6_oracle/oracle-blog/</link>
		<comments>http://murati.hu/c6_oracle/oracle-blog/#comments</comments>
		<pubDate>Sat, 23 May 2009 18:25:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Oktatás]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[blog]]></category>

		<guid isPermaLink="false">http://localhost/murati.hu/?p=73</guid>
		<description><![CDATA[Egyetemi szakirányos képzésemen önálló labor gyakorlatát az Oracle Technológiák témacsoportjában végzem. A féléves munkám jobb dokumentálása és a közvetlenebb kapcsolattartás végett egy szakmai blogot vezetek, ahol remélhetőleg hasznos és gyakorlatias információkat fogok tudni nyújtani Oracle technológiákkal, termékkel és eseményekkel kapcsolatban az olvasók számára. A blogot az Oracle menüpont alatt, vagy a http://oracle.murati.hu címen olvashatjátok.

&#160;
Tanulmányaimat segítik [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="lightbox[]" href="http://murati.hu/gallery/weblapok/oraclebi.jpg"><img class="ngg-singlepic ngg-left" src="http://murati.hu/gallery/weblapok/thumbs/thumbs_oraclebi.jpg" alt="Oracle BI blog" /></a>Egyetemi szakirányos képzésemen önálló labor gyakorlatát az Oracle Technológiák témacsoportjában végzem. A féléves munkám jobb dokumentálása és a közvetlenebb kapcsolattartás végett egy szakmai blogot vezetek, ahol remélhetőleg hasznos és gyakorlatias információkat fogok tudni nyújtani Oracle technológiákkal, termékkel és eseményekkel kapcsolatban az olvasók számára. A blogot az Oracle menüpont alatt, vagy a http://oracle.murati.hu címen olvashatjátok.</p>
<p><span id="more-73"></span></p>
<p>&nbsp;</p>
<h4>Tanulmányaimat segítik (abc rendben):</h4>
<ul>
<li><a href="http://www.oracle.com/global/hu/corporate/contact.html" target="_blank">Fekete Zoltán</a> (Oracle)</li>
<li><a href="http://www.tmit.bme.hu/member/kardkovacs.zsolt!hun" target="_blank">Kardkovács Zsolt Tivadar</a> (BME &#8211; TMIT)</li>
<li><a href="http://www.tmit.bme.hu/member/marton.jozsef!hun" target="_blank">Marton József</a> (BME TMIT)</li>
<li><a href="http://www.oracle.com/global/hu/corporate/contact.html" target="_blank">Sárecz Lajos</a> (Oracle)</li>
</ul>
<p style="text-align: justify;">
<h3>2008/2009 &#8211; I. félév</h3>
<p style="text-align: justify;">Első Önálló labor feladatom az Oracle Business Intelligence megoldásának részletes feltárása, megismerése és másokkal való megismertetése volt. A félév során a cég megoldásaik közül az Oracle BI Enterprise Edition-jét vettem górcső alá.</p>
<h3>2008/2009 &#8211; II. félév</h3>
<p style="text-align: justify;">Szakirányos tanulmányaim második féléves sok-kredites önálló laborom céljául e-mailek tárolásának és kezelésének problémakörét boncolgatom Oracle technológiák segítségével, de a feladatról teljes egészében most csak ennyit szeretnék nyilatkozni.</p>
<p style="text-align: justify;">
<h3>2009/2010 &#8211; I. félév</h3>
<p style="text-align: justify;"> Szakirányom harmadik önálló labor céljának az előző félévben elkezdett e-mailek és elemzéséhez kapcsolódó feladatot fogom folytatni.</p>
]]></content:encoded>
			<wfw:commentRss>http://murati.hu/c6_oracle/oracle-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Email fejlécek</title>
		<link>http://murati.hu/c5_oktatas/email-header/</link>
		<comments>http://murati.hu/c5_oktatas/email-header/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 12:29:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Oktatás]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[mime-header]]></category>

		<guid isPermaLink="false">http://www.murati.hu/oracle/index.php?p=21</guid>
		<description><![CDATA[Féléves feladatom egy olyan összetett rendszer tervezése, amely e-mailek kezelését végzi. Ehhez tudnunk kell természetesen, hogy hogyan is épül fel az az oly egyszerűnek tűnő levél, amit napról napra százasával küldözgetünk. Általában minket hétköznapi embereket a tartalmon kívül más nem szokott érdekelni, ám mi most egy olyan rendszert szeretnénk tervezni, ami levelünket szőröstül, bőröstül, de [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Féléves feladatom egy olyan összetett rendszer tervezése, amely e-mailek kezelését végzi. Ehhez tudnunk kell természetesen, hogy hogyan is épül fel az az oly egyszerűnek tűnő levél, amit napról napra százasával küldözgetünk. Általában minket hétköznapi embereket a tartalmon kívül más nem szokott érdekelni, ám mi most egy olyan rendszert szeretnénk tervezni, ami levelünket szőröstül, bőröstül, de jól emészthetően képes tárolni.<span id="more-21"></span></p>
<p style="text-align: justify;">Az emailek logikailag két részre oszthatók: A fejre és a tartalomra, azaz a header-re és a content-re, amik még a levelezés hőskorából átörökölték a 7bites &#8211; ANSI karakterkészletes ábrázolás átkát, amikre később furfangos bővítéseket és kódolásokat találtak ki az általános használhatóság érdekében.</p>
<p style="text-align: justify;">A fej az, ami megmondja kiszolgálóinknak, hogy kitől, ki(k)nek, merre és hogyan menjenek az üzenet, ez a rész gyakorlatilag minden mail-szerveren (MTA)  áthaladva módosul, bővülnek egy kicsit, de a lényegi információk (remélhetőleg) megmaradnak. Ugyanakkor a fej rengeteg meta adatot is tartalmaz rólunk, levelezőnkről (MUA), levelünk útjáról és kézbesítésének körülményeiről.</p>
<p style="text-align: justify;">Habár az e-mail üzeneteknek is megvannak a maga szabványai, de az élet természetesen ezekhez is megtalálta egyéb megoldásait, így féléves feladatom megtervezéséhez először ezeket a széles körben alkalmazott, nem feltétlenül szükséges, szabványos vagy ajánlott MIME headereket gyűjtöttem össze:</p>
<p><a href="http://murati.hu/oracle/downloads/mime_headerek.docx">Általánosan elterjedt MIME headerek dokumentuma (word 2007 docx)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://murati.hu/c5_oktatas/email-header/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Murátiné Szél Edit honlapja</title>
		<link>http://murati.hu/c1_munkak/muratine-szel-edits-homepagemuratine-szel-edit-honlapja/</link>
		<comments>http://murati.hu/c1_munkak/muratine-szel-edits-homepagemuratine-szel-edit-honlapja/#comments</comments>
		<pubDate>Sun, 01 Jun 2008 18:26:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Munkáim]]></category>
		<category><![CDATA[Oktatás]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[weblap]]></category>

		<guid isPermaLink="false">http://localhost/murati.hu/?p=74</guid>
		<description><![CDATA[Édesanyám, Szél Edit személyes és szakmai weboldala. Itt megtalálhatjátok publikációit, könyveit és általa lektorált kiadványokat (letölthető formátumban is), hivatalos elérhetőségét és a fontosabb hallgatói információkat az aktuális félévekre vonatkozóan.
]]></description>
			<content:encoded><![CDATA[<p>Édesanyám, <a href="http://www.murati.hu/szeledit" target="_blank">Szél Edit személyes és szakmai weboldala</a>. Itt megtalálhatjátok <a href="http://www.murati.hu/szeledit/index.php?page_id=4" target="_blank">publikációit, könyveit és általa lektorált kiadványokat (letölthető formátumban is)</a>, <a href="http://www.murati.hu/szeledit/index.php?page_id=9" target="_blank">hivatalos elérhetőségét</a> és a fontosabb hallgatói információkat az aktuális félévekre vonatkozóan.</p>
]]></content:encoded>
			<wfw:commentRss>http://murati.hu/c1_munkak/muratine-szel-edits-homepagemuratine-szel-edit-honlapja/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Szabályozástechnika házi feladat</title>
		<link>http://murati.hu/c5_oktatas/szabalyozastechnika-hazi-feladat/</link>
		<comments>http://murati.hu/c5_oktatas/szabalyozastechnika-hazi-feladat/#comments</comments>
		<pubDate>Fri, 22 Jun 2007 18:27:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Oktatás]]></category>
		<category><![CDATA[házi feladat]]></category>

		<guid isPermaLink="false">http://localhost/murati.hu/?p=75</guid>
		<description><![CDATA[2007-2008/1. félévének Szabályozástechnika című tárgyhoz készült 39. feladatkódú házi feladat.  A feladat részletes leírását a dokumentum tartalmazza. A folyamatom érdekessége, hogy átviteli függvénye nem tartalmaz holt-időt, viszont meg van áldva egy integráló taggal. Semmiféleképpen nem nevezhető nehéz házinak, viszont mivel még nem találtam megosztva hasonlót, gondoltam valakinek még jól jöhet. A PDF tartalmaz minden képletet, [...]]]></description>
			<content:encoded><![CDATA[<p>2007-2008/1. félévének Szabályozástechnika című tárgyhoz készült 39. feladatkódú házi feladat.  A feladat részletes leírását a dokumentum tartalmazza. A folyamatom érdekessége, hogy átviteli függvénye nem tartalmaz holt-időt, viszont meg van áldva egy integráló taggal. Semmiféleképpen nem nevezhető nehéz házinak, viszont mivel még nem találtam megosztva hasonlót, gondoltam valakinek még jól jöhet. A PDF tartalmaz minden képletet, matlab kódot, szimulációt és magyarázatokat is. Sok sikert a tárgyhoz!</p>
<p><a href="http://murati.hu/media/murati_akos_jnc2fc_szabtech_hf.pdf">Szabályozástechnika HF letöltése</a></p>
]]></content:encoded>
			<wfw:commentRss>http://murati.hu/c5_oktatas/szabalyozastechnika-hazi-feladat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Analóg Óra &#8211; Windows API programozás</title>
		<link>http://murati.hu/c5_oktatas/analog-ora-windows-api-programozasanalog-ora-windows-api-programozas/</link>
		<comments>http://murati.hu/c5_oktatas/analog-ora-windows-api-programozasanalog-ora-windows-api-programozas/#comments</comments>
		<pubDate>Thu, 18 Jan 2007 18:28:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Oktatás]]></category>
		<category><![CDATA[házi feladat]]></category>

		<guid isPermaLink="false">http://localhost/murati.hu/?p=76</guid>
		<description><![CDATA[Az Analóg óra a Windows Programozása című választhazó kurzushoz készült házi feladatom. Az előadásokon a Windows API eszközközeli programozásával foglalkoztunk a C++ nyelven. A program eszköz közeli szinten alkalmaz dupla-pufferelést a villódzások elkerülésére.
Telepítés és futtatás után egy kör alakú windows ablakot kapunk, amelyben egy analóg óra informál minket a gépen beállított időről. Az ablak mindig [...]]]></description>
			<content:encoded><![CDATA[<p>Az Analóg óra a Windows Programozása című választhazó kurzushoz készült házi feladatom. Az előadásokon a Windows API eszközközeli programozásával foglalkoztunk a C++ nyelven. A program eszköz közeli szinten alkalmaz dupla-pufferelést a villódzások elkerülésére.</p>
<p>Telepítés és futtatás után egy kör alakú windows ablakot kapunk, amelyben egy analóg óra informál minket a gépen beállított időről. Az ablak mindig legfelül helyezkedik el, mozgatni a fogd és vidd módszerrel lehet, kilépni, pedig az ESC billentyű leütésével lehet. Átméretezni a Start Menü-ben, az Analóg Óra mappáján belül az átméretezés parancsikonnal tudjuk.</p>
]]></content:encoded>
			<wfw:commentRss>http://murati.hu/c5_oktatas/analog-ora-windows-api-programozasanalog-ora-windows-api-programozas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mesterséges Intelligencia &#8211; Induktív tanulás</title>
		<link>http://murati.hu/c5_oktatas/mesterseges-intelligencia-induktiv-tanulasmesterseges-intelligencia-induktiv-tanulas/</link>
		<comments>http://murati.hu/c5_oktatas/mesterseges-intelligencia-induktiv-tanulasmesterseges-intelligencia-induktiv-tanulas/#comments</comments>
		<pubDate>Mon, 15 Jan 2007 18:29:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Oktatás]]></category>
		<category><![CDATA[házi feladat]]></category>

		<guid isPermaLink="false">http://localhost/murati.hu/?p=77</guid>
		<description><![CDATA[A BME 5. févéves mesterséges intelligencia című tárgyhoz készült féléves házi feladat, melynek témája az induktív tanulás általánosságban és az ID3 agoritmus.
Szerzők:
Konfár András
Muráti Ákos
]]></description>
			<content:encoded><![CDATA[<p>A BME 5. févéves mesterséges intelligencia című tárgyhoz készült féléves házi feladat, melynek témája az induktív tanulás általánosságban és az ID3 agoritmus.</p>
<p>Szerzők:<br />
Konfár András<br />
Muráti Ákos</p>
]]></content:encoded>
			<wfw:commentRss>http://murati.hu/c5_oktatas/mesterseges-intelligencia-induktiv-tanulasmesterseges-intelligencia-induktiv-tanulas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>5. osztályos matematika oktató csomag</title>
		<link>http://murati.hu/c1_munkak/5-osztalyos-matematika-oktato-csomag5-osztalyos-matematika-oktato-csomag/</link>
		<comments>http://murati.hu/c1_munkak/5-osztalyos-matematika-oktato-csomag5-osztalyos-matematika-oktato-csomag/#comments</comments>
		<pubDate>Wed, 22 Nov 2006 19:15:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Munkáim]]></category>
		<category><![CDATA[Oktatás]]></category>

		<guid isPermaLink="false">http://localhost/murati.hu/?p=61</guid>
		<description><![CDATA[A Közoktatási Modernizációs Közalapítvány (KOMA) egyik pályázatának keretében készült matematika okató csomag, amely az általános iskola 5. osztályos diákjai számára készült. Az itt letölthető csomag tartalmazza a természetes és tört számok helyesírását, összeadását, kivonását és rendezését.
]]></description>
			<content:encoded><![CDATA[<p>A Közoktatási Modernizációs Közalapítvány (KOMA) egyik pályázatának keretében készült matematika okató csomag, amely az általános iskola 5. osztályos diákjai számára készült. Az itt letölthető csomag tartalmazza a természetes és tört számok helyesírását, összeadását, kivonását és rendezését.</p>
]]></content:encoded>
			<wfw:commentRss>http://murati.hu/c1_munkak/5-osztalyos-matematika-oktato-csomag5-osztalyos-matematika-oktato-csomag/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Skandáló</title>
		<link>http://murati.hu/c1_munkak/skandaloskandalo/</link>
		<comments>http://murati.hu/c1_munkak/skandaloskandalo/#comments</comments>
		<pubDate>Wed, 22 Feb 2006 19:13:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Munkáim]]></category>
		<category><![CDATA[Oktatás]]></category>

		<guid isPermaLink="false">http://localhost/murati.hu/?p=59</guid>
		<description><![CDATA[A Skandáló Windows verziója egy olyan varázsló, melynek segítségével tetszőleges vers vagy szöveg ritmikai felbontását állíthatjuk elő pillanatok alatt, így segítve az irodalmi vizsgálódást rengeteg idő megtakarításával. Több forrásból is tölthetünk be szövegeket, elemzés előtt lehet módosítani a skandálandó szöveget, valamint a gép értékelését is felülbírálhatjuk. Képes nyomtatni és menteni a skandált szöveget.
A skandáló korábbi [...]]]></description>
			<content:encoded><![CDATA[<p>A Skandáló Windows verziója egy olyan varázsló, melynek segítségével tetszőleges vers vagy szöveg ritmikai felbontását állíthatjuk elő pillanatok alatt, így segítve az irodalmi vizsgálódást rengeteg idő megtakarításával. Több forrásból is tölthetünk be szövegeket, elemzés előtt lehet módosítani a skandálandó szöveget, valamint a gép értékelését is felülbírálhatjuk. <span id="more-59"></span>Képes nyomtatni és menteni a skandált szöveget.</p>
<p>A skandáló korábbi DOS-os verziója tisztán karakteres felületű, csak szövegfájlokat képes olvasni, ám megbírkózik ezekben Windows-os ékezetek értelmezésével is.</p>
]]></content:encoded>
			<wfw:commentRss>http://murati.hu/c1_munkak/skandaloskandalo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Basic Assembly Emulator</title>
		<link>http://murati.hu/c1_munkak/basic-assembly-emulatorbasic-assembly-emulator/</link>
		<comments>http://murati.hu/c1_munkak/basic-assembly-emulatorbasic-assembly-emulator/#comments</comments>
		<pubDate>Wed, 22 Feb 2006 19:12:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Munkáim]]></category>
		<category><![CDATA[Oktatás]]></category>

		<guid isPermaLink="false">http://localhost/murati.hu/?p=58</guid>
		<description><![CDATA[Ez az assembly logikájának megértését segítő oktató program egy 8 regiszteres assembly emulator és fejlesztői környezet, amivel könnyen és gyorsan készí­thetünk egyszerűbb assembly programokat konkrét célhardver nélkül. Debug funkciója révén a kódok hatékony nyomonkövetését és működésének megértését segí­ti. Nyelve nem minősül referenciának, nem tartamaz konkrét utasításokat, csupán elméleti oktatási célokat szolgál.
Funkciói:

Assembly kódok importálhatósága más assembly [...]]]></description>
			<content:encoded><![CDATA[<p>Ez az assembly logikájának megértését segítő oktató program egy 8 regiszteres assembly emulator és fejlesztői környezet, amivel könnyen és gyorsan készí­thetünk egyszerűbb assembly programokat konkrét célhardver nélkül. Debug funkciója révén a kódok hatékony nyomonkövetését és működésének megértését segí­ti. Nyelve nem minősül referenciának, nem tartamaz konkrét utasításokat, csupán elméleti oktatási célokat szolgál.<span id="more-58"></span></p>
<p>Funkciói:</p>
<ul>
<li>Assembly kódok importálhatósága más assembly kódokból</li>
<li>Hibakereső és statisztikai adatok vezetése</li>
<li>Fejlett hiba- és kivételkezelés, hatékony debugger a kódok nyomonkövetésére</li>
<li>Futtatás sebességének beállítása, lépésenkénti végrehajtás</li>
<li>Bőví­tett rendszerfelület, a gyors kódfejlesztéshez, Funkcióbillentyűk</li>
<li>Több oszlopos kódmegjelení­tés</li>
<li>Memóriací­mek sorszámozása 1-től</li>
<li>Oda-vissza kompatibilis Rozgonyi-Borus Ferenc Assembly Emulátorával készí­tett programokkal is.</li>
<li>Sorszám nélküli metés, ezáltal kisebb a fájlok mérete</li>
<li>Utasí­tás súgók és ToolTip gyorssúgók</li>
<li>Optimalizált forrásód a hatékonyabb működéshez</li>
<li>Idegennyelvi modulokkal támogatható a program többnyelvűsége</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://murati.hu/c1_munkak/basic-assembly-emulatorbasic-assembly-emulator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

