Advertisement
Guest User

Untitled

a guest
Nov 26th, 2014
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 7.86 KB | None | 0 0
  1. program valutavalto;
  2.  
  3. uses httpsend,crt,DOM,XMLRead,XMLWrite,SysUtils;
  4.  
  5. var
  6.   Fajlnev: String;
  7.   USDszam: Extended;
  8.   JPYszam: Extended;
  9.   CZKszam: Extended;
  10.   GBPszam: Extended;
  11.   HUFszam: Extended;
  12.   RONszam: Extended;
  13.   Penznem: String;
  14.   Ertek: String;
  15.   Osszeg: Real;
  16.   Amibe: Extended;
  17.   Amibol: Extended;
  18.   AmibePenznem: String;
  19.   AmibePenznemErtek: String;
  20.  
  21.  
  22.  
  23. Function Letolto(URL, Celfajl: string): Boolean;
  24.  
  25. var
  26.   HTTPKuldo: THTTPSend;
  27.   HTTPValaszol: Boolean;
  28. begin
  29. ClrScr;
  30. Writeln('Árfolyamok frissítése...');
  31. Result := False;                                                            //Még nincs válasz
  32. HTTPKuldo := THTTPSend.Create;
  33. try
  34.   HTTPValaszol := HTTPKuldo.HTTPMethod('GET', URL);                        //Itt kapcsolódik először
  35.   if (HTTPKuldo.ResultCode >= 100) and (HTTPKuldo.ResultCode <= 299) then  //Csak ha nincs 404-es hiba, stb...
  36.   begin
  37.     HTTPKuldo.Document.SaveToFile(Celfajl);                                //Fájl letöltése
  38.     Result := True;
  39.   end;
  40. finally
  41.   HTTPKuldo.Free;
  42. end;
  43. if Result = True then                                                     //Nincs válasz a szervertől / Hiba
  44. Writeln('Sikeres frissítés! ',Celfajl,' letöltve!') else
  45. Writeln('Sikertelen frissítés. Helyi adatok használata');
  46.  
  47. end;
  48.  
  49. Function Beolvaso(Fajl: string): Boolean;
  50.  
  51. var
  52.   Doc: TXMLDocument;
  53.   USDdom: TDOMNode;
  54.   USDstring: String;
  55.   JPYdom: TDOMNode;
  56.   JPYstring: String;
  57.   CZKdom: TDOMNode;
  58.   CZKstring: String;
  59.   GBPdom: TDOMNode;
  60.   GBPstring: String;
  61.   HUFdom: TDOMNode;
  62.   HUFstring: String;
  63.   RONdom: TDOMNode;
  64.   RONstring: String;
  65.  
  66.  
  67. begin
  68. Result := False;
  69. if FileExists(Fajlnev) then
  70.  begin
  71.   Result := True;
  72.   ReadXMLFile(Doc, Fajl);
  73.  
  74.   USDdom := Doc.DocumentElement.FindNode('USD');                         //<USD> </USD> kikeresése
  75.    USDstring := USDdom.FirstChild.NodeValue;                             //String-é alakítás
  76.     USDszam := StrToFloat(USDstring);                                    //Stringből számmá
  77.   JPYdom := Doc.DocumentElement.FindNode('JPY');
  78.    JPYstring := JPYdom.FirstChild.NodeValue;
  79.     JPYszam := StrToFloat(JPYstring);
  80.   CZKdom := Doc.DocumentElement.FindNode('CZK');
  81.    CZKstring := CZKdom.FirstChild.NodeValue;
  82.     CZKszam := StrToFloat(CZKstring);
  83.   GBPdom := Doc.DocumentElement.FindNode('GBP');
  84.    GBPstring := GBPdom.FirstChild.NodeValue;
  85.     GBPszam := StrToFloat(GBPstring);
  86.   HUFdom := Doc.DocumentElement.FindNode('HUF');
  87.    HUFstring := HUFdom.FirstChild.NodeValue;
  88.     HUFszam := StrToFloat(HUFstring);
  89.   RONdom := Doc.DocumentElement.FindNode('RON');
  90.    RONstring := RONdom.FirstChild.NodeValue;
  91.     RONszam := StrToFloat(RONstring);
  92.   Writeln('Beolvasás sikeres!');
  93.  end
  94. else
  95.     begin
  96.     Writeln('Beolvasási hiba!');                                            //Ha nem találja a fájlt..
  97.     TextColor(LightRed);
  98.     Writeln('Enter a kilépéshez...');
  99.     Readln;
  100.     Halt;
  101.     end;
  102. end;
  103.  
  104.  
  105.  
  106. {$R *.res}
  107.  
  108. begin
  109. Fajlnev := ('valuta.xml');
  110. Letolto('http://5.175.194.100/adatok.xml', Fajlnev);
  111. Beolvaso(Fajlnev);
  112. TextColor(LightGreen);
  113. Writeln('Enter a folytatáshoz..');
  114. ReadLn;
  115. ClrScr;
  116. TextColor(White);
  117. Writeln('Elérhető valuták:');
  118. Writeln;
  119. TextColor(LightGreen);
  120. Write('USD');
  121. TextColor(White);
  122. Write(' - Amerikai Dollár');
  123. Writeln;
  124. TextColor(LightGreen);
  125. Write('JPY');
  126. TextColor(White);
  127. Write(' - Japán Yen');
  128. Writeln;
  129. TextColor(LightGreen);
  130. Write('CZK');
  131. TextColor(White);
  132. Write(' - Cseh Korona');
  133. Writeln;
  134. TextColor(LightGreen);
  135. Write('EUR');
  136. TextColor(White);
  137. Write(' - Euró');
  138. Writeln;
  139. TextColor(LightGreen);
  140. Write('GBP');
  141. TextColor(White);
  142. Write(' - Angol Font');
  143. Writeln;
  144. TextColor(LightGreen);
  145. Write('HUF');
  146. TextColor(White);
  147. Write(' - Magyar Forint');
  148. Writeln;
  149. TextColor(LightGreen);
  150. Write('RON');
  151. TextColor(White);
  152. Write(' - Román Lej');
  153. Writeln;
  154. Writeln;
  155. Writeln('Miből szeretnél átváltani?');
  156. TextColor(Yellow);
  157. Readln(Ertek);
  158. TextColor(White);
  159.  
  160.  
  161.  
  162. while (Ertek <> Penznem) or (Penznem = '') do                                                 //Trollbiztos megoldás.
  163.  
  164. begin
  165.  
  166.         if (Ertek = 'HUF')
  167.         or (Ertek = 'USD')
  168.         or (Ertek = 'EUR')
  169.         or (Ertek = 'GBP')
  170.         or (Ertek = 'RON')
  171.         or (Ertek = 'CZK')
  172.         or (Ertek = 'JPY') then
  173.         Penznem := Ertek
  174.         else
  175.                begin
  176.                TextColor(LightRed);
  177.                Writeln('Rosszul írtad be. Add meg újra:');
  178.                TextColor(Yellow);
  179.                Readln(Ertek);
  180.                TextColor(White);
  181.                end;
  182. end;
  183.  
  184.  
  185.  
  186.  
  187. ClrScr;
  188.  
  189. Write('Amiből átváltasz: ');
  190. TextColor(LightGreen);
  191. Write(Penznem:0);
  192. Writeln;
  193. TextColor(White);
  194. Writeln('Mennyit akarsz átváltani? (Csak a szám, pl: 4564.65)');
  195. TextColor(Yellow);
  196. Readln(Osszeg);
  197. TextColor(White);
  198. ClrScr;
  199. Write('Amiből átváltasz: ');
  200. TextColor(LightGreen);
  201. Write(Penznem);
  202. Writeln;
  203. TextColor(White);
  204. Write('Amennyit átváltasz: ');
  205. TextColor(LightGreen);
  206. Write(FormatFloat('0.####', Osszeg));
  207. Writeln;
  208. TextColor(White);
  209. Writeln;
  210. Writeln;
  211. Writeln('Elérhető valuták:');
  212. Writeln;
  213. TextColor(LightGreen);
  214. Write('USD');
  215. TextColor(White);
  216. Write(' - Amerikai Dollár');
  217. Writeln;
  218. TextColor(LightGreen);
  219. Write('JPY');
  220. TextColor(White);
  221. Write(' - Japán Yen');
  222. Writeln;
  223. TextColor(LightGreen);
  224. Write('CZK');
  225. TextColor(White);
  226. Write(' - Cseh Korona');
  227. Writeln;
  228. TextColor(LightGreen);
  229. Write('EUR');
  230. TextColor(White);
  231. Write(' - Euró');
  232. Writeln;
  233. TextColor(LightGreen);
  234. Write('GBP');
  235. TextColor(White);
  236. Write(' - Angol Font');
  237. Writeln;
  238. TextColor(LightGreen);
  239. Write('HUF');
  240. TextColor(White);
  241. Write(' - Magyar Forint');
  242. Writeln;
  243. TextColor(LightGreen);
  244. Write('RON');
  245. TextColor(White);
  246. Write(' - Román Lej');
  247. Writeln;
  248. Writeln;
  249. Writeln('Mibe szeretnéd váltani?');
  250. TextColor(Yellow);
  251. Readln(AmibePenznemertek);
  252. TextColor(White);
  253.  
  254.  
  255. while (Amibepenznem <> AmibePenznemertek) or (Amibepenznem = '')  do                                                 //Trollbiztos megoldás.
  256.  
  257. begin
  258.  
  259.         if (AmibePenznemertek = 'HUF')
  260.         or (AmibePenznemertek = 'USD')
  261.         or (AmibePenznemertek = 'EUR')
  262.         or (AmibePenznemertek = 'GBP')
  263.         or (AmibePenznemertek = 'RON')
  264.         or (AmibePenznemertek = 'CZK')
  265.         or (AmibePenznemertek = 'JPY') then
  266.         Amibepenznem := AmibePenznemertek
  267.         else
  268.                begin
  269.                TextColor(LightRed);
  270.                Writeln('Rosszul írtad be. Add meg újra:');
  271.                TextColor(Yellow);
  272.                Readln(AmibePenznemertek);
  273.                TextColor(White);
  274.                end;
  275. end;
  276.  
  277.  
  278. If Penznem = 'USD' then
  279. Amibol := USDszam else
  280. if Penznem = 'GBP' then
  281. Amibol := GBPszam else
  282. if Penznem = 'HUF' then
  283. Amibol := HUFszam else
  284. if Penznem = 'RON' then
  285. Amibol := RONszam else
  286. if Penznem = 'CZK' then
  287. Amibol := CZKszam else
  288. if Penznem = 'JPY' then
  289. Amibol := JPYszam else
  290. Amibol := 1;
  291.  
  292. If AmibePenznem = 'USD' then
  293. Amibe := USDszam else
  294. if AmibePenznem = 'GBP' then
  295. Amibe := GBPszam else
  296. if AmibePenznem = 'HUF' then
  297. Amibe := HUFszam else
  298. if AmibePenznem = 'RON' then
  299. Amibe := RONszam else
  300. if AmibePenznem = 'CZK' then
  301. Amibe := CZKszam else
  302. if AmibePenznem = 'JPY' then
  303. Amibe := JPYszam else
  304. Amibe := 1;
  305.  
  306. ClrScr;
  307. Write('Amiből átváltasz: ');
  308. TextColor(LightGreen);
  309. Write(Penznem);
  310. Writeln;
  311. TextColor(White);
  312. Write('Amennyit átváltasz: ');
  313. TextColor(LightGreen);
  314. Write(FormatFloat('0.####', Osszeg));
  315. Writeln;
  316. TextColor(White);
  317. Write('Amibe átváltasz: ');
  318. TextColor(LightGreen);
  319. Write(Amibepenznem);
  320. Writeln;
  321. Writeln;
  322. Writeln;
  323. TextColor(White);
  324. Write('Amennyit kapsz: ');
  325. TextColor(Yellow);
  326. Write(FormatFloat('0.####', (Amibe/Amibol*Osszeg)),' ',Amibepenznem);
  327. Writeln;
  328. Writeln;
  329. If Penznem = Amibepenznem then
  330. Writeln('Amúgy miért váltasz át ugyanabba? :O');                             //Poén helye
  331. Readln;
  332.  
  333.  
  334.  
  335. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement