C++ * un & (pointeru sāga)
Posted: May 26, 2010 Filed under: c++ Leave a comment »Visiem vienmēr šķiet, ka pointeri ir ļoti sarežģīti, bet īstenībā tā nav. Zemāk ar piemēriem izskaidrošu kādēļ visi vienmēr ir baigā starā par pointeriem.
Reference operator &

Bildē skaidri redzams, ka andy vērtība ir 25, bet šis te 25 glabājas atmiņas šūnā ar adresi 1776.
Tātad sanāk, ja ted = &andy, tad ted ir vienāds ar andy atmiņas šūnas adresi, respektīvi, ja koda izpildes laikā andy tiek mainīts, tad automātiski tiek mainīts arī ted, jo abi norāda uz vienu un to pašu atmiņas šūnu (or adresi, whatevaa).
Lai nejauktu lietas noskaidrosim kas notiek, ja fred = ted. Šeit vienkārši fred tiek piešķirta tā vērtība, kura pašlaik ir ted, respektīvi, fred norāda uz atmiņas šūnu ar adresi 1776.
Dereference operator *

Bildē tiek izskaidrots bob = *ted. Pievienojot zvaigznīti mēs norādam, ka gribam saņemt vērtību uz kuru norāda ted nevis atmiņas šūnas adresi uz kuru norāda ted. Ja zvaigznīte netiktu pievienota tad bob būtu vienāds ar ted, bet ted ir norāde uz atmiņas adresi 1776. Abiem operatoriem ir pilnībā pretējas nozīmes.
Respektīvi:
& ir reference operator un var tikt interpretēts kā “address of”
* ir dereference operator un var tikt intepretēts kā “value of”
Tātad visi zemāk esošie apgalvojumi ir patiesi:
andy == 25
&andy == 1776
ted == 1776
*ted == 25
Programmas piemērs
int main () {
int firstvalue, secondvalue;
int * mypointer;
mypointer = &firstvalue;
*mypointer = 10;
mypointer = &secondvalue;
*mypointer = 20;
cout << "firstvalue is " << firstvalue << endl;
cout << "secondvalue is " << secondvalue << endl;
return 0;
}
Lai arī programmā nekur tieši netiek noteiktas firstvalue vai secondvalue vērtības beigu beigās abi variabļi tomēr satur vērtības pateicoties mypointer.
C++ argv[] switch
Posted: May 26, 2010 Filed under: c++ Leave a comment »int main(int argc, char *argv[]) {
char usage[] =
"\n"
" %s - (c) 2009-2010 Name Surname\n"
" http://your.homepage.com\n"
"\n"
" usage: %s [optional values]\n"
"\n";
if(argc <= 1) { // show usage if no parameter is specified
printf(usage, "1.0.0", argv[0]);
return 0;
}
for(int i=1; i<argc; i++) {
if(argv[i][0] == '-') { // if value starts with "-" it should be the command
switch(argv[i][1]) {
case 'a':
printf("you selected -a\n");
printf("a was: %s", argv[i+1]);
break;
case 'b':
printf("you selected -b");
printf("b was: %s", argv[i+1]);
break;
default:
printf(usage, "1.0.0", argv[0]);
}
}
}
return 0;
}
Protams visi ienākošie dati ir jāpārbauda vai viņi atbilst prasībām & stuff.
Startēt uTorrent tikai tad, ja ir torrenti ko kačāt/sīdot
Posted: March 27, 2010 Filed under: win | Tags: bat Leave a comment »Nebija ko darīt un nepatika, ka uTorrent sēž trejā. Izdomāju, ka startēšu uTorrent tikai tad, ja iekš manas torrents mapes (tur, kur tiek glabāti visi mani *.torrent faili) būs kāds torrents, ko kačāt.
@ECHO OFF :: This batch file checks if there are any .torrent files :: in the specified dir & executes uTorrent if it succeeded. SET UTORRENT=C:\Program Files\uTorrent\uTorrent.exe SET TORRENTS=C:\Program Files\uTorrent\Torrents IF EXIST "%TORRENTS%\*.torrent" START "" /min "%UTORRENT%"
Nokopē augstāk esošo tekstu, saglabā kā utorrent.bat. Pievienojam jaunu scheduled task un liekam tam startēties kad ielogojies vai kad sistēma startējas.
Pele atstiepās
Posted: October 3, 2009 Filed under: /dev/null | Tags: logitech, mouse Leave a comment »No sākuma likās, ka tikai барахлит, bet vēlāk izrādās atstiepās, so.. izštepselēju peli, “e2fsck -v -y /dev/sda1″ un tagad nāksies jūzot touchpad’u kamēr nopirkšu peli. Tēmēju uz logitech, jo viņi ražo normāla izmēra peles. Ciest nevaru tās sīkās peles.
Līkās rokas, c++ un getenv()
Posted: September 25, 2009 Filed under: c++ | Tags: c++, compiler, test Leave a comment »Nesen man uzpeldēja dīvaina problēma, ka iekš c++ nestrādāja getenv(). Vispār – man kods nestrādāja nemaz. Strādāju es ar šādu kodu:
#include <cstdlib>
#include <iostream>
int main(void) {
char * s = getenv("PATH");
if (s) {
printf("%s\n", s);
} else {
std::cout << "FAIL";
}
return 0;
}
Kurš diemžēl man nekā neatgrieza. I mean vispār neko (pat to “FAIL”). Tad nu es to štelli atmetu. Šodien (26.09.2009) piesēdos un kkā sadomāju nomainīt manu kompilēšanas str (“g++ test.cpp -o test”) uz šādu – “g++ test.cpp -o test2″. Palaidu progu un voulā viss strādā! Vot pizdjec! :|
Vēlāk Datuves lietotājs speccy apgaismoja mani, ka ar to “test” es vislaik palaidu bash skriptu. Vajadzēja “./test” :(
C++ iekš GNU/Linux
Posted: September 23, 2009 Filed under: c++ | Tags: c++, g++ Leave a comment »Nezināju kā lai sāk kodēt c++ iekš linux. Ja godīgi tad es nemaz i nezināju kā šeit kompilē c++ kodu, a izrādas pavisam easy “g++ blah.cpp -o blah”. Anyway es sāku prasīt gūglei un šī man izmeta cplusplus.com tutoriāli. Nu neko sāku lasīt un tad kkā nejauši atcerējos, ka man tak vesela kaudze ar žurnāliem savilkta kkad tālajā 2008. (ja nemaldos) gadā. Ie-cd’oju dir’ā un izrādās to žurnālu tur ir pat pārāk daudz – veseli 39! Aij, pohuj.. gan jau noderēs, bet pagaidām turpināšu mācīties no cplusplus.com pdf’a :)
DraugiemMusic – Firefox addon (extension)
Posted: September 22, 2009 Filed under: js | Tags: addons, firefox 3 Comments »Netīšām sanāca uztaisīt, ka muzika.draugiem.lv dziesmas ir iespējams nolādēt mūziķa profilā, bet nu tas lai paliek uz katra paša sirdsapziņas :)

Maģiskā podziņa atgriež šādu rezultātu:
Tālākais jau katra paša ziņā vai nu “ffmpeg -i blah.flv -ab 128k blah.mp3″, zamzar.com vai velnsviņzin kas :)
Daļa no tā ko paveicu pagājšnakt neguļot
Posted: September 21, 2009 Filed under: php | Tags: css, php Leave a comment »
Uzliku jauno QT un puse no softa atstiepās
Posted: September 21, 2009 Filed under: /dev/null | Tags: bezmiegs, qt Leave a comment »Aizvakar, neatceros kāpēc, ieinstalēju QT 4 un tas man saplēsa visu sistēmu. Nonesu. Uzliku QT3.3, joprojām nekas neiet. Eh.. Tāds slinkums meklēt iemeslu kādēļ tas tā. Kad izgulēšos tad var būt.. Šonakt atkal negulēju, kodēju lapu. Nebija fīlings gulēt. Zato kad tagad kkad dienas vidū atplīsīšu tā uz stundām 30mit :D Vispār vajadzētu kkā iespējot abus QT, respektīvi, qt būtu qt3.3 un qt4 būtu qt4 :)