PHP image change order – смяна на подредбата на картинки

Искаше ми се да подобря някои галерии които съм правил за разни сайтове. Не знам как до сега не съм се сетил да вкарам нещо толкова полезно и толкова дребно, като кодиране, като смяната на подредбата или последователността (change order).
PHP picture change order
Ще покжа прост пример, като ще използвам обикновена текстова база данни със следното съдържание:

a=>edno
b=>dve
c=>tri
d=>chetiri
e=>pet

И php скрипта:

<?php
$act = $_GET['act'];
$id = $_GET['id'];
 
$x=0;
 
if( isset($act) && ($act == 'up' || $act == 'down')){
	$arf = file("db.txt");
	foreach($arf as $line){
		list($k, $v) = preg_split('/=>/', rtrim($line));
		$input[$k] = $v;
		if($k == $id){
			$xp = $x;
		}
		$x++;
	}
	$inkey = array_keys($input);
	$inval = array_values($input);
	if($act == 'up'){
		$prevord = array_slice($inval, $xp-1, 1);
		$previd = array_slice($inkey, $xp-1, 1);
		$curord = array_slice($inval, $xp, 1);
 
		$prevord = $prevord[0];
		$previd = $previd[0];
		$curord = $curord[0];
		$curid = $id;
 
		$input[$previd] = $curord;
		$input[$curid] = $prevord;
 
		foreach ($input as $key => $val){
			$write .= $key."=>".$val."\r\n";
		}
		file_put_contents("db.txt", $write);
		header("Location:sortar.php");
		exit;
	} else {
		$nextord = array_slice($inval, $xp+1, 1);
		$nextid = array_slice($inkey, $xp+1, 1);
		$curord = array_slice($inval, $xp, 1);
 
		$nextord = $nextord[0];
		$nextid = $nextid[0];
		$curord = $curord[0];
		$curid = $id; // c
 
		$input[$nextid] = $curord;
		$input[$curid] = $nextord;
 
		foreach ($input as $key => $val){
			$write .= $key."=>".$val."\r\n";
		}
		file_put_contents("db.txt", $write);
		header("Location:sortar.php");
		exit;
	}
}
 
 
 
 
$arf = file("db.txt");
foreach($arf as $line){
	list($k, $v) = preg_split('/=>/', rtrim($line));
	$input[$k] = $v;
}
 
$inkey = array_keys($input);
$inval = array_values($input);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<style type="text/css">
body {background: #ededed;}
table {border-collapse:separate; border-spacing:5px; }
table tr td {border: 1px solid #fff;}
table tr td:first-child {background: #ddd;}
table tr td:first-child a {text-decoration: none; color: blue; font-weight: bold; font-size: 24px;}
</style>
</head>
 
<body>
	<table>
	<?php
	for($x=0; $x<count($inval);$x++){ ?>
		<tr>
		<?php if($x==0){ ?>
			<td><a href="sortar.php?act=down&id=<?php echo $inkey[$x]; ?>" >\/</a></td>
			<td><img src="img/<?php echo $inval[$x]; ?>.jpg"></td><td><?php echo $inkey[$x]; ?></td>
		<?php } elseif($x==(count($inval)-1)){ ?>
			<td><a href="sortar.php?act=up&id=<?php echo $inkey[$x]; ?>" >/\</a></td>
			<td><img src="img/<?php echo $inval[$x]; ?>.jpg"></td><td><?php echo $inkey[$x]; ?></td>
		<?php } else { ?>
			<td><a href="sortar.php?act=up&id=<?php echo $inkey[$x]; ?>" >/\</a>
			<a href="sortar.php?act=down&id=<?php echo $inkey[$x]; ?>" >\/</a></td>
			<td><img src="img/<?php echo $inval[$x]; ?>.jpg"></td><td><?php echo $inkey[$x]; ?></td>
		<?php } ?>
		</tr> <?php
	}?>
	</table>	
</body>
</html>

Демо може да се види тук: PHP change order images

Share and Enjoy !

Shares

RiffelJack – уникално хард-рок шоу от пловдивска банда

В събота бях на концерт! Дет се вика “изтърваха ме” :)! Направо отнесох плувката. Качествен хард-рок, качествена компания, качествени питиета и яки места за напиване! Бандата на която ходих се казва RiffelJack с вокал Станимир Рачев (много добър приятел).
Шоуто беше култово! Бандата изпълни освен собствени хави и някои кавъри, които пълнят душата – на Guano Apes, Rage Against the Machine, Machine Head, King’s X (парчето Dogman – много любимо!)… и т.н. в тоя печен стил. Голямо шоу се получи, когато викнаха две девойки на сцената, за да изпеят хард-рок кавър на Горан Брегович – Я Съм Мале Питбул – Tериер :)! Проста да падладьейш!!!!!!!!! 🙂
Ето малко кадри от събитието:

Share and Enjoy !

Shares

Шкаф окачен на стена – направи си сам

Понатрупал опит от предишните ми мъки с правене на собствена спалня реших да си направя шкаф, който да ми виси над бюрото. Това е моето скромно пространство, което се смалява ден след ден и единствения начин да освободя повече обем за книгите, компютърните компоненти и други натурии е да си направя собствен шкаф. С помощта на Blender и nanoCAD си изчислих точно размерите и направих 3Д схема на проекта, за да проверя, че всичко ще пасне:
Разкрой и 3D схема на шкафа
Направих си разкроя в “Съливар” до КАТ – Пловдив.:
Разкрой на плоскостта за шкафа
Използвах програмата Cutting 3: цък или цък
Това е програмата, която използват от “Съливер” и вместо те да ми правят схемите реших аз да си ги направя. За да използвам целия лист добавих и 2 вратички за стария шкаф на терасата и няколко елемента за простичка етажерка за книги.
Жалко само, че не прецених, че листа е по-голям от колкото си спомнях. Листа, който си избрах е следния:
Бук натурален - лист ПДЧ
При разкроя е особено важно да се зададат окрайчване и отстоянията заради дебелината на ножа:

  • Окрайчване: по 1cm от всяка страна, т.е. 2cm по широчина и 2cm по дължина
  • Дебелина на ножа: 5mm

Необходимите материали, които ми трябваха за проекта:
1. Бургии обикновени
– 4мм
– 6мм
– 8мм
2. Бургии за панел
– 6мм
– 8мм
3. Пирони малки – 8бр.
4. Фрезенкови болтове: 6x25mm – 16бр.
5. Гайки M6 – 16бр.
6. Бонбони за рафт – 4бр.
7. Панти с късо рамо – 4бр.
8. Винкели – 1.8x30x300mm – 4бр
9. Фазер – 900×900 mm
10. Дюбели за набиване – 8x60mm – 4бр.
11. Винтове за дърво – 3×20мм – 40бр
12. Винтове за дърво 3×16мм – 60бр (за пантите и фурнира)
13. Ъгли – 4бр (ръчно изработени от ламарина 1.8mm)

Необходимите материали
Фрезенкови болтове, ъгли, винтове ... необходими материали за окачения шкаф
Ако се сетя за още нещо ще го добавя и него.
Викнах си помагач, че жените не са много за такива работи и го почнах. Шкафа е разглобяем и за това е малко груб. В смисъл не е много за показване , но ето малко снимки от работния процес:
сглобяване на шкафа





Бай Браун много помагаше с моралната си подкрепа 🙂
Бай Браун




Използват се всякакви подръчни средства за фиксиране на шкафа. Ако сте 3-ма или повече човека можете да си го спестите 🙂 :

Пластмасова празна бутилка с тесен отвор за издухване на прахта от дупките

И горд от себе си с удоволствие щракнах готовия проект!
Готовия окачен шкаф за стената
Ако си правите ъгли от ламарина се постарайте да са по-големички! Не защото шкафа може да скъса ламарината, а за да ви е удобно да го бучнете на стената. Много по-удобно се работи с бормашината, ако дупката е по-далече от ъгъла, а и дупките стават по-прави.
Друго което се сещам и е полезно е вързването на вратичките. За да останат около 2.5mm от ръба на габаритния размер е необходимо да се хване база за 35mm фрезичка на 21.5mm от ръба на вратичката. Добре, че го отработих тоя момент, щото щях да бера бая ядове. В момента имам 2 мм процеп при затворени вратички.
Знам, че при ползване на панти с късо рамо, ако искаш вратичките да покриват изцяло страничните чела, трябва да се хване база на 23.5mm.

Евала ми, ам шенкелите ми се огъват вече и си плача за биричката… но исках да покажа до къде я докарах!

PS: Ако статията ви е харесала, можете да погледнете и още един мой проект: Детско легло с големи чекмеджета – направи си сам

Share and Enjoy !

Shares

Peppermint, wbar, lxde and language applet

Peppermint ми стана любимо Linux дистро за флашката. Изключително леко и бързо. Инсталирам го Universal USB Installer с персистентно пространство, за да мога да инсталирам допълнителни програми и да го конфигурирам. Ето малко тарикатлъци:
1. Добавяне на applet за смяна на английски и бълграски:

gedit ~/.linuxmint/skl

Поставям следния текст и Save:

setxkbmap "us,bg(phonetic)" -option "grp:alt_shift_toggle"

След това се стартира с:

~/.linuxmint/skl

И можете да си менкате кирилица или латиница с Shift+Alt (левите)
За улеснение може да се викне и аплета Keyboard layout switcher:
Десен клик на лентата със задачите -> Add/Remove Panel Items -> Panel Applets -> +Add -> Keyboard layout switcher

2. Добавяне на Wbar панел (като тоя в MAC)

apt-get install wbar

За улеснение при конфигурирането се изтегля WbarConf.
Инсталиране на WbarConf:

sudo ./install.sh /usr

И вече го имаме в Menu -> Accsessories -> WbarConf
Настройките за позицията и т.н. са в File -> Settings

3. Автоматично стартиране на програми със зареждането на Peppermint
Повечето съвременни Linux дистрибуции разполагат с улеснен Autostart на програмите. По принцип това може да се види и редактира в сесията на десктопа. Но ние сме пичове и обичаме да го правим сами. Ще покажа как могат да се набутат горните 2 “програми” в autostart-а на Peppermint.
Отивате в ~/.config/autostart и създавате празен файл keyb.desktop. Разширението .desktop казва на операционната система да зареди този файл при зареждането на десктопа за текущия потребител. Вътре в keyb.desktop поставяме следното съдържание:

[Desktop Entry]
Encoding=UTF-8
Name=Keyboard Layout
Comment=Keyboard Layout Settings
X-GNOME-Autostart-Delay=60
Exec=/home/peppermint/.linuxmint/skl

Същото можем да направим и с Wbar – wbar.desktop:

[Desktop Entry]
Encoding=UTF-8
Name=Wbar
Comment=Wbar panel
Exec=bash -c "sleep 10; /usr/bin/wbar -pos top --above-desk"

В крайна сметка, след рестарт, всичко си е на мястото и работи идеално:
wbar panel and wbar settings
Може би не е най-елегантното решение, но пък върши много добра работа.

Share and Enjoy !

Shares

Greasemonkey scripts

Ползвали ли сте Greasemonkey? Това е една изключително готина добавка за Firefox (вече и за други браузери, в Chrome 4 си я има по подразбиране), която доста улеснява живота. Greasemonkey ви позволява да промените начина по който изглежда или се държи дадена Web-страница, благодарение на малки парченца javaScript код.
Greasemonkey може да се използва за персонализиране на редакторите във форумите. Как примерно да добавим бутончета към редактора за постове в Dbg:
– да прави цвета на селектирания текст в синьо, а текста удебелен
– да слага тагове за цитиран текст

Ей го скрипта:

// ==UserScript==
// @name           Add DBG Buttons
// @namespace      http://www.download.bg/*
// @description    Add DBG Buttons
// @include        
// ==/UserScript==
 
var BlueBtn = document.createElement('a');
BlueBtn.appendChild(document.createTextNode('Blue'));
BlueBtn.setAttribute("onclick", "s('[color=blue][b]', '[/b][/color]', document.posting_form.message)");
BlueBtn.setAttribute("style", "color: blue; font-weight: bold; cursor:pointer; margin: 0 2px; background: #eeeedd; border: 1px solid #bbbbaa;");
 
var content=document.evaluate("//a[@class='rtbutton']", document, null, 9, null).singleNodeValue;
content.parentNode.insertBefore(BlueBtn, content);
 
var QuotBtn = document.createElement('a');
QuotBtn.appendChild(document.createTextNode('"quot"'));
QuotBtn.setAttribute("onclick", "s('[q]', '[/q]', document.posting_form.message)");
QuotBtn.setAttribute("style", "color: black; font-weight: normal; cursor:pointer; margin: 0 2px; background: #eeeedd; border: 1px solid #bbbbaa;");
 
var content=document.evaluate("//a[@class='rtbutton']", document, null, 9, null).singleNodeValue;
content.parentNode.insertBefore(QuotBtn, content);

Много готино е, че Frefox поддържа XPath! За разлика от лайното Internet Explorer (трябва да се забрани със закон и всеки потребител да подписва договор, че никога, за нищо на света няма да използва IE, ам наистина НИКОГА!). А XPath яко улеснява писането на JavaScript и неимоверно съкращава кода.
Резултата може да се види на картинките по-долу.
Оригинална лента:

С добавените бутони:

Скрипта може да се изтегли от тук:
Добавяне на бутони към коментарите в DBG
======================================

Между другото Greasemonkey може да автоматизира и въвеждането на информация в специални сайтове, като например онлайн игрите. Има една онлайн игра Dimiva.com, където трябва да въртиш някакво зомбирано колело и междувременно ти излизат някакви зомбирани реклами, които трябва да познаваш за какво са и да кликаш на radio-бутони под тях. Изобщо зомбирана ситуация. Използвам я само за примерен скрипт, който да маркира автоматично radio-бутоните.

// ==UserScript==
// @name           Dimiva
// @namespace      https://www.dimiva.com/*
// @description    Dimiva advent script
// @include        
// ==/UserScript==
 
var items = {
"24ins" : "Застрахователен",
"0_7_wonders" : "Сладкарница",
"0_svobodni_kvartiri" : "жилища под наем",
"folio4cars" : "Затъмняване",
"cube_fitness_club" : "Фитнес",
"0_4by4" : "Off-Road",
"0_qbi_group" : "Застрахователен",
"0_maniq_varna" : "Дрехи втора упореба",
"e4995150fc0a" : "Алмохадон"
};
 
var images = document.getElementsByTagName('img');
 
for (var i=0; i<images.length; i++){
	for(var index in items) {
		if (images[i].src.indexOf(index) != -1) {
			document.evaluate("//div[contains(@class,'banner-container')]/a/img[contains(@src,'" + index +"')]/../../div/label[contains(text(),'" + items[index] + "')]/input", document, null, 9, null).singleNodeValue.setAttribute('checked', 'checked');
		}
	}
}

Спред картинката, която се зарежда, маркирам и съответния бутон. Картинките са с постоянни имена, което улеснява зомбираната ситуация.
И скрипта: dimiva.com – radio clicker

======================================
Ще покажа и още един пример, който обработва всички зададени тагове от дадена страница. Примерно искаме да сменим цвета на “син” на всички линкове в някой сайт. За да си спестя безмислено писане на код, отново ще използвам XPath.

// ==UserScript==
// @name           Blue Links
// @namespace      http://statcounter.com/
// @include        http://statcounter.com/*
// ==/UserScript==
 
 
textNodes = document.evaluate("//a", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
 
for (var i=0;i<textNodes.snapshotLength;i++) {
  var node = textNodes.snapshotItem(i);
  node.style.color = "blue";
}

======================================
На сайта на филмовата база данни IMDB има много интересни класации и рейтинги на филми. Но при отварянето на някои излиза досаден банер, който те призовава да станеш ProUser. Примерна страница:
https://pro.imdb.com/moviemeter/?d=tt_moviemeter_why
IMDB ProUser - banner

Това е смешно… и естествено е редно да го разкараме:

// ==UserScript==
// @name           imdb hide pro banner
// @namespace      none
// @include        http://pro.imdb.com/moviemeter/*
// ==/UserScript==
 
var snode = document.evaluate("//div[@id='pro_upsell_wrapper']", document, null, 9, null).singleNodeValue;
snode.style.display = 'none';

След като приложихме скрипта, получаваме една нормална страница:
IMDB ProUser Banner removed - Greasemonkey

======================================

И още един скрипт за оналайн магазина SportsDirect, който скрива резултати с цена по-висока от избраната от нас. Примерно искаме да скрием всички стоки, които са с цена по-висока от 29 паунда.

// ==UserScript==
// @name           SportsDirect
// @namespace      http://www.sportsdirect.com/
// @include        http://www.sportsdirect.com/*
// ==/UserScript==
 
var price_custom = 29; // Nad kakva cena da skriva rezultata
 
textNodes = document.evaluate("//span[@class=\"sellingprice s-largered productPrice productHasRef\"]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
 
for (var i=0;i<textNodes.snapshotLength;i++) {
 
  var nodeText = textNodes.snapshotItem(i).textContent.replace("£","");
  var node = textNodes.snapshotItem(i)
  if(nodeText>=price_custom){
	node.parentNode.parentNode.parentNode.parentNode.parentNode.style.visibility = 'hidden';
  }
}

Файл за инсталиране: SportsDirect price filter

======================================

Малко полезни линкове:
https://userscripts.org/ – база данни с потребителски скриптове. Добро място за разучаване на кодирането с Greasemonkey.
https://wiki.greasespot.net/ – мястото от където е добре да започнем
document.evaluate – обяснение за опциите на document.evaluate

Share and Enjoy !

Shares

Blender + Photoshop – Winter wallpaper

Хвана ме Коледното настроение. Може би е заради Jim Beam-а и лошото време :)! Мек бърбън за кеф! моите приятели не го харесват, но на мен ми е една голяма мазня, от готните. И изобщо Jim Beam-а ми влиза в челната 3-ка на любимите алкохоли. Естествено, че ми действа депресарски липсата на всякакви видове сняг. Искам сняг бе хора! Айде, развалете го малко т’ва време, да му се не види! Ама ми е гот де :)! Все още е само лееекинко Коледно, но пък с тенденция!
Докато си мислих (недей да мислиш, бъди себе си …пффффф :)) и слушах Коледния албум на Pink Martini – Joy to the World реших да рисувам. Пийньето действа на музите, ако ти се намират. Изразни средства, които ползвам: Blender 3D (вездесъщия моделер!) и Photoshop, не че и с GIMP не става, това дето го драща.
Ето я картинката:
Коледа Wallpaper
Прилагам и сорса – 3D-файла и PSD-Photoshop файла: Blender + Photoshop Winter wallpaper
Идеята иска още много работа, като примерно да и надълбая една пъртина, да мацна някоя зарязана шейна, да заваля сняг и дъра-бъра. Но и така стилизирано ми харесва на деКстопа. Ако ви се вали сняг, завалете си го.

Share and Enjoy !

Shares

GTK2 and Perl GUI – simple example

Често ми се налага да правя GUI-та за малки програмки на perl, ruby, python и за това ще постна простичък интерфейс, който показва основните неща:

#!/usr/bin/perl -w
 
use utf8;
use Gtk2 '-init';
use strict;
 
my $buffer;
my $wm   = Gtk2::Window->new;
   $wm->set_title ('GTK2 + Perl GUI');
my $vbox = Gtk2::VBox->new;
my $hbox = Gtk2::HBox->new( 0, 0 );
my $sw   = Gtk2::ScrolledWindow->new( undef, undef );
my $tw   = Gtk2::TextView->new();
my $button = Gtk2::Button->new( "Click me" );
my $entry = Gtk2::Entry->new_with_max_length( 50 );
 
sub create_widgets {
    $wm->signal_connect (destroy => sub { Gtk2->main_quit; });
 
    $wm->set_default_size( 260, 150 );
    $sw->add( $tw );
    $sw->set_policy( 'automatic', 'automatic' );
 
    $button->signal_connect( clicked => sub { \&button_click() } );
 
    $vbox->pack_start($hbox,0,0,0);
    $hbox->set_border_width(2);
 
    $hbox->pack_start( $entry, 0, 0, 0 );
    $hbox->pack_start( $button, 0, 0, 0 );
    $vbox->pack_start( $sw, 1, 1, 0 );
 
    $wm->add( $vbox );
    $wm->show_all();
}
 
create_widgets();
 
sub button_click{
    my $str = $entry->get_text();
    my $buffer = $tw->get_buffer();
    # append text:
    # $buffer->insert ($buffer->get_end_iter, "$str\n");
    $buffer->set_text($str);
}
 
Gtk2->main;

Резултат:
GTK2 Perl Simple Example

Ако все пак нямате инсталиран GTK2 на вашата дистрибуция, можете да го инсталирате така (за Debian базирани):

sudo apt-get install libgtk2.0-dev
sudo apt-get install libgtk2-perl

Share and Enjoy !

Shares

PoetryHaxor for Linux

Скоро написах една програмка за търсене на рими – PoetryHaxor за Windows. Преработих програмката и за linux, но вместо C++ използвах Perl, че е доста по-лесен.
Работи нормално под Gnome среда, защото GUI-то ползва GTK2.
Тествана е под Debian 2.6.32-5-686 и Ubuntu 11.04 с десктоп Gnome 2.30.2.
Версия на интерпретатора: perl v5.10.1
Изглежда ето така:
PoetryHaxor for linux
За да се стартира програмата се стартира perl-файла poetryhaxor.pl. Това може да се направи по няколко начина. Примерно:

perl poetryhaxor.pl

или да я направим да се отваря с двоен клик:

chmod +x poetryhaxor.pl

Скрипта може да се изтегли от тук: PoetryHaxor 1.0
Ако все пак нямате инсталиран GTK2 на вашата дистрибуция, можете да го инсталирате така (за Debian базирани):

sudo apt-get install libgtk2.0-dev
sudo apt-get install libgtk2-perl

Share and Enjoy !

Shares

PoetryHaxor – програма за търсене на рими

Написах простичка програма за търсене на рими. Демек програма за поезия. Мислех си да го напасна по срички (имаше една тема в DBG като идея), но стигнах до извода, че няма прекалено много думи, които да съвпадат по срички, за да хвърля ресурси в тая насока.
Писах го на C++, пак с опреснителна цел, както и други проекти напоследък. Макар, че като погледна кода леко ме хваща сТрам :). Прилагам проекта със сорса и ако някой има желание, може да си го прекомпилира и оптимизира (минимум :)). Речника е отделен от exe-то и е обикновен текстов файл с много думи. Начоплил съм го от BGOffice Помощник.
Ето линк към програмката, “мечта” на всички поети :): PoetryHaxor_1.0
PoetryHaxor - програма за търсене на рими
Речника е доста сериозен, а програмката не е особено оптимизирана. В тоя смисъл, за да работи по-бързичко се иска по-съвременна машина, но мисля, че и на 1GHz с 1Gb ще върви що-годе с забавяне при търсенето 3-4 секунди.

Пренаписах програмата (на perl) за linux – PoetryHaxor for Linux.
PS: Благодарение на bvbfan от форума на linux-bg.org пренаписах програмата, като кеширах речника в паметта. Към момента не отчитам подобряване на бързодействието, но ще си мисля още по въпроса. Ето и версия 0.2 на програмата: PoetryHaxor-v.02

Написах нова версия на програмата – PoetryHaxor 3.0. Тази версия е писана на C# и изисква .Net фреймуърк. Речника е обогатен с двойно повече думи и търсенето на думи става за по-малко от секунда. Изстегляне: PoetryHaxor-v.03.

Share and Enjoy !

Shares

C++ RegEx wxDev-C++ – прост регулярен израз

Тия дни пиша една програмка за един приятел. Но реших вместо на php да я напиша на C++, че и без това го мъча напоследък. За компилатор и среда използвам wxDev-C++, че ми идва в всичко на куп, вкючително и за GUI.
Но нещо не можах да подкарам нормално Regular Expression. wxDevCpp разполага с интегрирани библиотеки, но какъвто и код да напиша не баца, да го weba! Случайно в мрежата открих и друг пич с подобен проблем и от него разбрах, че ако добавя по-долните редове в Линкера всичко ще е мед и рози:
-static
-l$(WXLIBNAME)
-l$(WXLIBNAME)_gl
-lwxtiff
-lwxjpeg
-lwxpng
-lwxzlib
-lwxregex
-lwxexpat
-lkernel32
-luser32
-lgdi32
-lcomdlg32
-lwinspool
-lwinmm
-lshell32
-lcomctl32
-lole32
-loleaut32
-luuid
-lrpcrt4
-ladvapi32
-lwsock32
-lodbc32
-lopengl32

За да се добавят, трябва да се създаде нов проект, след което се избира: Project -> Project Options -> Additional Command-Line Options -> пейства се в полето Linker.
Прост код за пример:

#include <iostream>
#include <wx/wx.h>
#include <wx/regex.h>
using namespace std;
 
int main()
{
wxRegEx reg("[0-9]{3}$");
wxString str = "sddgtrf156";
if(reg.Matches(str)) cout << "matches\n"; // match the string - yes!!
}

Share and Enjoy !

Shares