Всякоразно
разное мое. хобби, сказки, котлы, окна, кино.
среда, 25 декабря 2019 г.
четверг, 11 октября 2018 г.
Новая группа в ВК. Пилатес, пилога, боди-балет и прочие фитнесы.
https://vk.com/piloga48
Piloga – гармоничное сочетание йоги и пилатеса, тренировка силы и гибкости . Piloga подходит всем – спортсменам и начинающим, взрослым и детям. Плавные и мягкие движения исправляют дефекты осанки и оттачивают контуры тела. Piloga – это самодостаточная система, но она формирует базу, которая позволит развиваться в любом направлении фитнеса,танцев или спорта.
Bodi-balet – система основана на упражнениях партерной хореографии, йоги и пилатеса.
Результат тренировок :
Bodi-balet – система основана на упражнениях партерной хореографии, йоги и пилатеса.
Результат тренировок :
« Если б Пушкин видел Вас,
с Вас бы не сводил он глаз!
Совершенство Ваших ножек
рисовал бы он сейчас!»
с Вас бы не сводил он глаз!
Совершенство Ваших ножек
рисовал бы он сейчас!»
среда, 14 декабря 2016 г.
Старый китайский кабель DKU-5 и его использование.
Короче, был у меня такой кабель. Уже лет 10 лежит в закромах. Вот решил его поюзать для коммуникации с ESP8266. Жестоко срезал черный корпус с USB части, а там все залито чем-то вроде термоклея. Отогреть нечем, я просто срезал нокиевский штекер с другой стороны и увидел 4 провода: синий, желтый, белый и зеленый(который к штекеру и не подключен вовсе). В ходе разборок выяснилось, что: синий=GND, желтый=Tx , а белый=Rx. Что такое зеленый, еще не понятно.
Теперь установим драйвера, так как виндаХР кабель видит, а что это такое - не знает. в параметрах видно что это "USB\VID_10AC&PID_10C6". Поиск дал ровно одну ссылку на http://forum.ixbt.com/topic.cgi?id=13:36329-23,
где товарищ пишет, как исправить драйвер от Silicon Labs, чтобы его винда поняла. Сам драйвер искать по ссылке:http://www.silabs.com/.
просто в .inf файле
После строкиПосле проделанного винда приняла дивайсину как родную.
вставить код
1
%USB\VID_10C4&PID_EA60.DeviceDesc%=silabser.Dev, USB\VID_10C4&PID_EA60
После строки
1
%USB\VID_10AC&PID_10C6.DeviceDesc%=silabser.Dev, USB\VID_10AC&PID_10C6
вставить код
1
USB\VID_10C4&PID_EA60.DeviceDesc=
"Silicon Labs CP210x USB to UART Bridge"
1
USBVID_10AC&PID_10C6.DeviceDesc=
"Silicon Labs CP210x USB to UART Bridge"
Осталось то же самое проделать с линуксовыми драйверами и установить их по инструкции. Теперь кабель видится и в виндеХР и в линукс.
пятница, 10 февраля 2012 г.
чтение XML
Консольное приложение, читает XML файл и выводит построчно. Строи начинаются тегом
#include "SIMPLEIO.CH"
PROCEDURE Main (nnmm)
LOCAL oXmlDoc := TXmlDocument():new()
LOCAL oXmlNode //, aStruct := {}
oXMlDoc:read( Memoread( nnmm ) )
oXmlNode := oXmlDoc:findFirst()
DO WHILE oXmlNode <> NIL
if UPPER(oXmlNode:cName)=="DETAIL"
outstd(HB_OsNewLine())
endif
outstd(oXmlNode:cName," = ",oXmlNode:cData," | ")
oXmlNode := oXmlDoc:findNext()
ENDDO
RETURN
пятница, 2 декабря 2011 г.
Чтобы не забыть:
настройка FreeTDS соединения с MSSQL
1) Установить собственно FreeTDS и unixODBC
aptitude install freetds-dev
aptitude install tdsodbcaptitude install freetds-dev
2) настроить freetds.conf, odbcinst.ini, odbc.ini
#cat /etc/odbcinst.ini
[FreeTDS]
Description = TDS driver (Sybase/MS SQL)
Driver = /usr/lib/odbc/libtdsodbc.so
Setup = /usr/lib/odbc/libtdsS.so
CPTimeout =
CPReuse =
FileUsage = 1
#cat /etc/odbc.ini
[SERVER]
Description = ODBC connection via FreeTDS
Driver = FreeTDS
Servername = wts7
Database =
UID =
PWD =
Port =
Trace = No
#cat /etc/freetds/freetds.conf
[wts7]
host = 192.168.0.67
port = 1433
tds version = 7.0
3) проверим
isql -v SERVER sa sql***
sqsh -S wts7 -U sa -P sql***
sqsh -S 192.168.0.67 -U sq -P sql***
tsql -H 192.168.0.67 -p 1433 -U sa ----- ?????
среда, 28 сентября 2011 г.
Чтобы не забыть. Пример использования windows USB принтера (опубликовано на [harbour-u sers] Harbour + Windows + Printer USB пользователем Itamar M. Lisn Jr.)
/*
* $Id: testprn.prg 13647 2010-01-19 22:19:54Z vszakats $
*/
#include "common.ch"
#include "hbwin.ch"
PROCEDURE Main( cPar1 )
LOCAL nPrn := 1
LOCAL cBMPFile := Space( 40 )
LOCAL aPrn := WIN_PRINTERLIST()
LOCAL GetList := {}
CLS
IF Empty( aPrn )
Alert("No printers installed - Cannot continue")
QUIT
ENDIF
DO WHILE nPrn != 0
CLS
@ 0, 0 SAY "Win_Prn() Class test program. Choose a printer to test"
@ 1, 0 SAY "Bitmap file name" GET cBMPFile PICT "@K"
READ
@ 2, 0 TO MaxRow(), MaxCol()
nPrn := AChoice( 3, 1, MaxRow() - 1, MaxCol() - 1, aPrn, .T.,, nPrn )
IF nPrn != 0
PrnTest( aPrn[ nPrn ], cBMPFile, iif( ISCHARACTER( cPar1 )
.AND. Lower( cPar1 ) == "ask", .T., NIL ) )
ENDIF
ENDDO
RETURN
STATIC PROCEDURE PrnTest( cPrinter, cBMPFile, lAsk )
LOCAL oPrinter := Win_Prn():New( cPrinter )
LOCAL aFonts
LOCAL x
LOCAL nColFixed
LOCAL nColTTF
LOCAL nColCharSet
oPrinter:Landscape := .F.
oPrinter:FormType := WIN_DMPAPER_A4
oPrinter:Copies := 1
IF ISLOGICAL( lAsk )
oPrinter:AskProperties := lAsk
ENDIF
IF ! oPrinter:Create()
Alert( "Cannot Create Printer" )
ELSE
IF ! oPrinter:startDoc( "Win_Prn(Doc name in Printer Properties)" )
Alert( "StartDoc() failed" )
ELSE
oPrinter:SetPen( WIN_PS_SOLID, 1, HB_WIN_RGB_RED )
oPrinter:Bold( WIN_FW_EXTRABOLD )
oPrinter:TextOut( oPrinter:PrinterName + ": MaxRow() = " +
Str( oPrinter:MaxRow(), 4 ) + " MaxCol() = " + Str(
oPrinter:MaxCol(), 4 ) )
oPrinter:Bold( WIN_FW_DONTCARE )
oPrinter:NewLine()
oPrinter:TextOut(" Partial list of available fonts that are
available for OEM_")
oPrinter:NewLine()
oPrinter:UnderLine( .T. )
oPrinter:Italic( .T. )
// oPrinter:SetFont( "Courier New", 7, { 3, -50 } ) // Compressed print
nColFixed := 40 * oPrinter:CharWidth
nColTTF := 48 * oPrinter:CharWidth
nColCharSet := 60 * oPrinter:CharWidth
oPrinter:TextOut( "FontName" )
oPrinter:SetPos( nColFixed )
oPrinter:TextOut( "Fixed?" )
oPrinter:SetPos( nColTTF )
oPrinter:TextOut( "TrueType?" )
oPrinter:SetPos( nColCharset )
oPrinter:TextOut( "CharSet#", .T. )
oPrinter:NewLine()
oPrinter:Italic( .F. )
oPrinter:UnderLine( .F. )
aFonts := oPrinter:GetFonts()
oPrinter:NewLine()
FOR x:= 1 TO Len( aFonts ) STEP 2
oPrinter:CharSet( aFonts[ x, 4 ] )
IF oPrinter:SetFont( aFonts[ x, 1 ] ) // Could use
"IF oPrinter:SetFontOk" after call to oPrinter:SetFont()
IF oPrinter:FontName == aFonts[ x, 1 ] // Make sure
Windows didn't pick a different font
oPrinter:TextOut( aFonts[ x, 1 ] )
oPrinter:SetPos( nColFixed )
oPrinter:TextOut( iif( aFonts[ x, 2 ], "Yes", "No" ) )
oPrinter:SetPos( nColTTF )
oPrinter:TextOut( iif( aFonts[ x, 3 ], "Yes", "No" ) )
oPrinter:SetPos( nColCharSet )
oPrinter:TextOut( Str( aFonts[ x, 4 ], 5 ) )
oPrinter:SetPos( oPrinter:LeftMargin, oPrinter:PosY
+ ( oPrinter:CharHeight * 2 ) )
IF oPrinter:PRow() > oPrinter:MaxRow() - 16 //
Could use "oPrinter:NewPage()" to start a new page
EXIT
ENDIF
ENDIF
ENDIF
oPrinter:Line( 0, oPrinter:PosY + 5, 2000, oPrinter:PosY + 5 )
NEXT
oPrinter:SetFont( "Lucida Console", 8, { 3, -50 } ) //
Alternative Compressed print
oPrinter:CharSet( 0 ) // Reset default charset
oPrinter:Bold( WIN_FW_EXTRABOLD )
oPrinter:NewLine()
oPrinter:TextOut( "This is on line" + Str( oPrinter:Prow(), 4
) + ", Printed bold, " )
oPrinter:TextOut( " finishing at Column: " )
oPrinter:TextOut( Str( oPrinter:Pcol(), 4 ) )
oPrinter:SetPrc( oPrinter:Prow() + 3, 0 )
oPrinter:Bold( WIN_FW_DONTCARE )
oPrinter:TextOut( "Notice: UNDERLINE only prints correctly if
there is a blank line after", .T. )
oPrinter:TextOut( " it. This is because of :LineHeight
and the next line", .T. )
oPrinter:TextOut( " printing over top of the
underline. To avoid this happening", .T. )
oPrinter:TextOut( " you can to alter :LineHeight or
use a smaller font, or use :SetBkMode( WIN_TRANSPARENT )" )
oPrinter:NewLine()
oPrinter:NewLine()
oPrinter:SetFont( "Lucida Console", 18, 0 ) // Large print
oPrinter:SetColor( HB_WIN_RGB_GREEN )
oPrinter:TextOut( "Finally some larger print" )
oPrinter:Box( 0, oPrinter:PosY + 100, 100, oPrinter:PosY + 200 )
oPrinter:Arc( 200, oPrinter:PosY + 100, 300, oPrinter:PosY + 200 )
oPrinter:Ellipse( 400, oPrinter:PosY + 100, 500, oPrinter:PosY + 200 )
oPrinter:FillRect( 600, oPrinter:PosY + 100, 700,
oPrinter:PosY + 200, HB_WIN_RGB_RED )
// To print a barcode;
// Replace 'BCod39HN' with your own bar code font or any other font
// oPrinter:TextAtFont( oPrinter:MM_TO_POSX( 30 ),
oPrinter:MM_TO_POSY( 60 ), "1234567890", "BCod39HN", 24, 0 )
//
PrintBitMap( oPrinter, cBMPFile )
oPrinter:EndDoc()
ENDIF
oPrinter:Destroy()
ENDIF
RETURN
STATIC PROCEDURE PrintBitMap( oPrn, cBitFile )
LOCAL oBMP
IF Empty( cBitFile )
*
ELSEIF ! hb_FileExists( cBitFile )
Alert( cBitFile + " not found " )
ELSE
oBMP := Win_BMP():New()
IF oBmp:loadFile( cBitFile )
oBmp:Draw( oPrn, { 200, 200, 2000, 1500 } )
// Note: Can also use this method to print bitmap
// oBmp:Rect := { 200, 200, 2000, 1500 }
// oPrn:DrawBitMap( oBmp )
ENDIF
oBMP:Destroy()
ENDIF
RETURN
/*
* $Id: testprn.prg 13647 2010-01-19 22:19:54Z vszakats $
*/
#include "common.ch"
#include "hbwin.ch"
PROCEDURE Main( cPar1 )
LOCAL nPrn := 1
LOCAL cBMPFile := Space( 40 )
LOCAL aPrn := WIN_PRINTERLIST()
LOCAL GetList := {}
CLS
IF Empty( aPrn )
Alert("No printers installed - Cannot continue")
QUIT
ENDIF
DO WHILE nPrn != 0
CLS
@ 0, 0 SAY "Win_Prn() Class test program. Choose a printer to test"
@ 1, 0 SAY "Bitmap file name" GET cBMPFile PICT "@K"
READ
@ 2, 0 TO MaxRow(), MaxCol()
nPrn := AChoice( 3, 1, MaxRow() - 1, MaxCol() - 1, aPrn, .T.,, nPrn )
IF nPrn != 0
PrnTest( aPrn[ nPrn ], cBMPFile, iif( ISCHARACTER( cPar1 )
.AND. Lower( cPar1 ) == "ask", .T., NIL ) )
ENDIF
ENDDO
RETURN
STATIC PROCEDURE PrnTest( cPrinter, cBMPFile, lAsk )
LOCAL oPrinter := Win_Prn():New( cPrinter )
LOCAL aFonts
LOCAL x
LOCAL nColFixed
LOCAL nColTTF
LOCAL nColCharSet
oPrinter:Landscape := .F.
oPrinter:FormType := WIN_DMPAPER_A4
oPrinter:Copies := 1
IF ISLOGICAL( lAsk )
oPrinter:AskProperties := lAsk
ENDIF
IF ! oPrinter:Create()
Alert( "Cannot Create Printer" )
ELSE
IF ! oPrinter:startDoc( "Win_Prn(Doc name in Printer Properties)" )
Alert( "StartDoc() failed" )
ELSE
oPrinter:SetPen( WIN_PS_SOLID, 1, HB_WIN_RGB_RED )
oPrinter:Bold( WIN_FW_EXTRABOLD )
oPrinter:TextOut( oPrinter:PrinterName + ": MaxRow() = " +
Str( oPrinter:MaxRow(), 4 ) + " MaxCol() = " + Str(
oPrinter:MaxCol(), 4 ) )
oPrinter:Bold( WIN_FW_DONTCARE )
oPrinter:NewLine()
oPrinter:TextOut(" Partial list of available fonts that are
available for OEM_")
oPrinter:NewLine()
oPrinter:UnderLine( .T. )
oPrinter:Italic( .T. )
// oPrinter:SetFont( "Courier New", 7, { 3, -50 } ) // Compressed print
nColFixed := 40 * oPrinter:CharWidth
nColTTF := 48 * oPrinter:CharWidth
nColCharSet := 60 * oPrinter:CharWidth
oPrinter:TextOut( "FontName" )
oPrinter:SetPos( nColFixed )
oPrinter:TextOut( "Fixed?" )
oPrinter:SetPos( nColTTF )
oPrinter:TextOut( "TrueType?" )
oPrinter:SetPos( nColCharset )
oPrinter:TextOut( "CharSet#", .T. )
oPrinter:NewLine()
oPrinter:Italic( .F. )
oPrinter:UnderLine( .F. )
aFonts := oPrinter:GetFonts()
oPrinter:NewLine()
FOR x:= 1 TO Len( aFonts ) STEP 2
oPrinter:CharSet( aFonts[ x, 4 ] )
IF oPrinter:SetFont( aFonts[ x, 1 ] ) // Could use
"IF oPrinter:SetFontOk" after call to oPrinter:SetFont()
IF oPrinter:FontName == aFonts[ x, 1 ] // Make sure
Windows didn't pick a different font
oPrinter:TextOut( aFonts[ x, 1 ] )
oPrinter:SetPos( nColFixed )
oPrinter:TextOut( iif( aFonts[ x, 2 ], "Yes", "No" ) )
oPrinter:SetPos( nColTTF )
oPrinter:TextOut( iif( aFonts[ x, 3 ], "Yes", "No" ) )
oPrinter:SetPos( nColCharSet )
oPrinter:TextOut( Str( aFonts[ x, 4 ], 5 ) )
oPrinter:SetPos( oPrinter:LeftMargin, oPrinter:PosY
+ ( oPrinter:CharHeight * 2 ) )
IF oPrinter:PRow() > oPrinter:MaxRow() - 16 //
Could use "oPrinter:NewPage()" to start a new page
EXIT
ENDIF
ENDIF
ENDIF
oPrinter:Line( 0, oPrinter:PosY + 5, 2000, oPrinter:PosY + 5 )
NEXT
oPrinter:SetFont( "Lucida Console", 8, { 3, -50 } ) //
Alternative Compressed print
oPrinter:CharSet( 0 ) // Reset default charset
oPrinter:Bold( WIN_FW_EXTRABOLD )
oPrinter:NewLine()
oPrinter:TextOut( "This is on line" + Str( oPrinter:Prow(), 4
) + ", Printed bold, " )
oPrinter:TextOut( " finishing at Column: " )
oPrinter:TextOut( Str( oPrinter:Pcol(), 4 ) )
oPrinter:SetPrc( oPrinter:Prow() + 3, 0 )
oPrinter:Bold( WIN_FW_DONTCARE )
oPrinter:TextOut( "Notice: UNDERLINE only prints correctly if
there is a blank line after", .T. )
oPrinter:TextOut( " it. This is because of :LineHeight
and the next line", .T. )
oPrinter:TextOut( " printing over top of the
underline. To avoid this happening", .T. )
oPrinter:TextOut( " you can to alter :LineHeight or
use a smaller font, or use :SetBkMode( WIN_TRANSPARENT )" )
oPrinter:NewLine()
oPrinter:NewLine()
oPrinter:SetFont( "Lucida Console", 18, 0 ) // Large print
oPrinter:SetColor( HB_WIN_RGB_GREEN )
oPrinter:TextOut( "Finally some larger print" )
oPrinter:Box( 0, oPrinter:PosY + 100, 100, oPrinter:PosY + 200 )
oPrinter:Arc( 200, oPrinter:PosY + 100, 300, oPrinter:PosY + 200 )
oPrinter:Ellipse( 400, oPrinter:PosY + 100, 500, oPrinter:PosY + 200 )
oPrinter:FillRect( 600, oPrinter:PosY + 100, 700,
oPrinter:PosY + 200, HB_WIN_RGB_RED )
// To print a barcode;
// Replace 'BCod39HN' with your own bar code font or any other font
// oPrinter:TextAtFont( oPrinter:MM_TO_POSX( 30 ),
oPrinter:MM_TO_POSY( 60 ), "1234567890", "BCod39HN", 24, 0 )
//
PrintBitMap( oPrinter, cBMPFile )
oPrinter:EndDoc()
ENDIF
oPrinter:Destroy()
ENDIF
RETURN
STATIC PROCEDURE PrintBitMap( oPrn, cBitFile )
LOCAL oBMP
IF Empty( cBitFile )
*
ELSEIF ! hb_FileExists( cBitFile )
Alert( cBitFile + " not found " )
ELSE
oBMP := Win_BMP():New()
IF oBmp:loadFile( cBitFile )
oBmp:Draw( oPrn, { 200, 200, 2000, 1500 } )
// Note: Can also use this method to print bitmap
// oBmp:Rect := { 200, 200, 2000, 1500 }
// oPrn:DrawBitMap( oBmp )
ENDIF
oBMP:Destroy()
ENDIF
RETURN
пятница, 11 марта 2011 г.
теперь в инете пойдет поток освященных битов.
http://www.lenta.ru/news/2011/03/10/noevil/
Скорее всего это они для "чтобы постебаться". Других объяснений нет. Ну или им из правительства спустили директиву "срочно обсвятить, или мы за себя не отвечаем! плата по таксе, такса в прейскуранте ЗАО РПЦ"
Скорее всего это они для "чтобы постебаться". Других объяснений нет. Ну или им из правительства спустили директиву "срочно обсвятить, или мы за себя не отвечаем! плата по таксе, такса в прейскуранте ЗАО РПЦ"
воскресенье, 20 февраля 2011 г.
Вот на новый год фотографировались, а получились призраки
Вот фотографировались на новый год. на следующий день сливал фотки на комп и нашел несколько интересных фоток. Вот первая - елка. просто елка, но если присмотреться - вокруг видны призрачные силуэты.
На следующем снимке Мои домочадцы, только как-то странно они выглядят.
А вот и все мы. Посмотрите, каие прозрачные! и никакого монтажа!
просто ошибка в настройке камеры!
На следующем снимке Мои домочадцы, только как-то странно они выглядят.
А вот и все мы. Посмотрите, каие прозрачные! и никакого монтажа!
просто ошибка в настройке камеры!
Информация о фотографии
01.01.2011
1600×1200 пикс. – 238 Кб
Имя файла: SDC11980.JPG
Фотоаппарат: Samsung Techwin
Модель:
ISO: 80
Экспозиция: 8.0 сек.
Диафрагма: 2.8
Фокусное расстояние: 6.3мм
Использовалась вспышка: Да
Широта: н/д
Долгота: н/д
Фотоаппарат: Samsung Techwin
Модель:
ISO: 80
Экспозиция: 8.0 сек.
Диафрагма: 2.8
Фокусное расстояние: 6.3мм
Использовалась вспышка: Да
Широта: н/д
Долгота: н/д
(на первой фотке вспышка выключена) Вот как то так и снимают призраков туристы. в темноте камера выставляет большую экспозицию, делает вспышку. Остальное дело фантазии или случайного "друга".Вот вам и привидения. Раньше я думал, что нужны какие-тио хитрые камеры, чтобы так сделать снимок, но опят показал, что это реально во вполне домашних условиях.
А вот напоследок еще снимочек
Это снято на огненном шоу фаерщиков (надо сказать, что ребята - молодци! получил огромное удовольствие от шоу!)
на фотке имеет место быть круглый блик.
надожив несколько фильтров в GIMP ничего толком не увидел. Справа вверху - дорожный знак слева тоже стнанный груг, но более бледный, а перед лицом девушки - яркий голубой круг. съемка велась на площадке перед ДК профсоюзов на Космонавтов. направление на люксор (знак обозначает пешеходную дорожку от ДК к Титова. Что там могло так бликовать?
воскресенье, 13 февраля 2011 г.
А вот и функции для накопления итогов в БД. Тут и создание сводного файла, и добавление записи.
// // ФУНКЦИЯ НАКОПЛЕНИЯ ИТОГОВ В СВОДНОМ ФАЙЛЕ // ПАРАМЕТРЫ : ключевое значение,aлиас области свода,добавляемый массив, function disk_add(key_V,sel,mas) local i,s s:=select() if ! empty(sel) dbselectarea(sel) endif if !dbseek(key_V) dbappend() REPLACE key WITH key_V //****************************** endif aeval(mas,{|x,i|fieldput(i+1,x+fieldget(i+1))}) dbselectarea(s) return(NIL) #define DEF_TYP "C" #define DEF_LEN 12 #define DEF_DEC 1 #define DEF_FCNT 10 #define DEF_NAME "_svod.dbf" // // ФУНКЦИЯ СОЗДАНИЯ СВОДНОГО ФАЙЛА // ПАРАМЕТРЫ : // ИМЯ,ТИП КЛЮЧА,ДЛИНА КЛЮЧА,КОЛИЧЕСТВО ГРАФ,массив форматов{{длина,дес.}, ...} //_svod.dbf, "C", 10 , DEF_FCNT , {...,{DEF_LEN,DEF_DEC},...} function disk_CREATE(name,KEY_TYP,KEY_LEN,NUM,mas) LOCAL I,FNUM,FLEN,FDEC,S,SS,NM,STRU:={} SS:=SELECT() IF NAME==NIL NAME:=DEF_NAME ENDIF IF KEY_TYP==NIL KEY_TYP:="C" ENDIF IF KEY_LEN==NIL KEY_TYP:=10 ENDIF if valtype(mas)#"A" mas:={} endif if (fnum:=max(num,len(mas)))==0 fnum:=DEF_FCNT endif aadd(stru,{"KEY",KEY_TYP,KEY_LEN,0}) for i:=1 to fnum nm:="P"+alltrim(str(i)) flen:=if(i<=len(mas).and.valtype(mas[i,1])="N",mas[i,1],DEF_LEN) fdec:=if(i<=len(mas).and.valtype(mas[i,2])="N",mas[i,2],DEF_DEC) aadd(stru,{nm,"N",flen,fdec}) endfor dbcreate(name,stru) use (name) new exclusive index on key to _tmp_ind s:=SELECT() DBSELECTAREA(SS) return (S)
Вот откопал свой старенький простенький форматер для печати. еще в ДОС работал. Ну и заодно пару других функций: перевод любых данных в строку (удобно для отладки, например), суммирование данных в каком-то разрезе (это было нужно для формирования статистических "простыней".Это чем-то сходно с хэшами, но тогда я еще об этом не знал ;-) При большом объеме бывало мало памяти, так что пришлось потом писать функцию для накопления итогов в БД. Алгоритм тот же. работало достаточно быстро на 286 компах.
// Функция форматирования строк таблиц для печати
// ПОЛУЧАЕТ : массив значений и массив,содержащий ширину граф.
// ВОЗВРАЩАЕТ : массив строк с отформатированными по ширине графами.
// ПРИМЕР
// a:="Олейников"
// b:="ИНЖЕНЕР-ПРОГРАММИСТ"
// c:=19011971
// d:=24
// e:=LineFormat({a,b,c,d},{10,8,8,4})
// ****************************************
//* e cтало равным -
//*{{"Oлейников ИНЖЕНЕР- 19011971 24"+CHR(13)+CHR(10)},
//* {" ПРОГРАММ "+CHR(13)+CHR(10)},
//* {" ИСТ "+CHR(13)+CHR(10)}}
// e:=LineFormat({a,b,c,d},{10,8,8,4},"|")
// ****************************************
//* e cтало равным -
//*{{"Oлейников |ИНЖЕНЕР-|19011971| 24|"+CHR(13)+CHR(10)},
//* {" |ПРОГРАММ| | |"+CHR(13)+CHR(10)},
//* {" |ИСТ | | |"+CHR(13)+CHR(10)}}
#define EOL (CHR(13)+CHR(10))
function LineFormat(MAS,MMM,x) // ЗНАЧЕНИЯ,ШИРИНА ГРАФ,разделитель
local lH:=0,ii:=0,i:=0,pos,fff,bbb,buf:="",RET:={},D:={}
local ND,priznak:=.f.,PPR,TMP,n:={},pnt,xx,lH1
D:=ACLONE(MAS)
lH:=len(mas)
lH1:=len(mmm)
FOR I= 1 TO LH
if i<=lh1
ii:=i
else
aadd(mmm,mmm[ii])
endif
D[I]=XTOC(D[I],mmm[i])
aadd(n,1)
NEXT
if x==NIL
x=" "
endif
*n=1
do while .t.
priznak:=.f.
* buf=ltrim(x)
for i=1 to Lh
do while .t.
TMP:=AT(";",substr(D[i],n[i],mmm[i]))
IF TMP>1
FFF:=TMP-1
PPR:=1
ELSeIF TMP=0
FFF:=MMM[I]
PPR:=0
ELSeIF TMP=1
n[i]++
loop
ENDIF
exit
enddo
bbb:=substr(D[i],n[i],fff)
buf+=(padr(bbb,MMM[I])+x)
if !empty(bbb)
priznak=.t.
endif
n[i]+=(FFF+PPR) // ЕСЛИ PPR=1 - ПРОПУСТИМ ;
endfor
if !priznak
IF LEN(RET)=0 ; RET:={" "} ; ENDIF
exit
else
AADD(RET,RTRIM(buf)+EOL)
buf:=""
endif
enddo
return RET
* Функция перевода данных любого типа в строковый.
* Правила перевода:
* строка - без изменения
* число - строка
* дата - строка
* объект - "объект"
* NIL - "пусто!"
* блок кода - строка от результата
* массив - слияние строк от элементов
* мемо - мемо
* логическое- "истина" или " ложь "
function xtoc(parm,len,dec)
local t:="",ln:=0,i:=0,p:=.f.,ret
ret:=""
t=valtype(parm)
DO Case
CASE t="A"
ln=len(parm)
For i=1 to ln
ret:=ret+xtoc(parm[i])
Next
CASE t="B"
ret:=xtoc(eval(parm))
CASE t="C"
ret:=parm
CASE t="D"
ret:=dtoc(parm)
CASE t="L"
ret:=if(parm,"истина"," ложь ")
CASE t="M"
ret:=parm
CASE t="N"
If !empty(len).and.!empty(dec)
ret:=str(parm,len,dec)
elseif !empty(len)
* ret:=str(parm,len)
IF LEN(ALLTRIM(STR(parm)))>len
RET:=REPLICATE("*",LEN)
ELSE
RET:=PADL(STR(PARM),LEN)
ENDIF
else
ret:=str(parm)
EndIF
p:=.t.
CASE t="O"
ret:="объект"
CASE t="U"
ret:="пусто!"
OTHERWISE
ret:=".?."
EndCASE
return ret
* Функция накопления итогов в двумерном массиве.
* перед вызовом необходим существующий двумерный массив;
* первый элемент в строке - ключ,остальные - значения
* к его элементам добавятся(по ключу) элементы массива для суммирования
*FUNCTION ADD (KEY,MAS,M) //КЛЮЧ,MАССИВ СУММ И МАССИВ ДЛЯ СУММИРОВАНИЯ
* LOCAL LN:=0,NOM:=0,I:=0,ELEM:={},LN1,LN2
* IF !EMPTY(MAS).AND.(NOM:=ASCAN(MAS,{|x|x[1]==KEY}))>0
* LN1:=LEN(MAS[NOM])-1
* LN2:=LEN(M)
* LN=MIN(LN1,LN2)
* FOR I=1 TO LN
* MAS[NOM,I+1]+=M[I]
* ENDFOR
* IF LN1
* FOR I=1 TO LN2-LN1
* AADD(MAS[NOM],M[ln+I])
* NEXT
* ENDIF
* ELSE
* LN:=LEN(M)
* ELEM:={KEY}
* FOR I=1 TO LN
* AADD(ELEM,M[I])
* ENDFOR
* AADD(MAS,ACLONE(ELEM))
* ENDIF
* RETURN MAS
*
вторник, 8 февраля 2011 г.
Образовательный стандарт
Образовательный стандарт.
не претендую на глубокий анализ - я не специалист и постараюсь не делать общих выводов. Так, по верхушкам, по цитатам.
Вот читаем базу по "Концепция духовно-нравственного развития и воспитания личности гражданина России " (страница 10):
"В советский период государство обрело всю полноту власти
над гражданином и его частной жизнью. Устраняя влияние церк
ви на общественную и личную жизнь, подавляя религиозное со
знание, советское государство само стало претендовать на роль
новой вселенской церкви. Спектр жизненных смыслов был сжат
до веры в коммунизм и служения коммунистической партии."
Бред какой-то! гундение типично-русских интеллигентиков.
там же на 21 странице вижу бредовый словесный понос:
"Педагогическая поддержка самоопределения личности, раз
вития её способностей, таланта, передача ей системных науч
ных знаний, умений, навыков и компетенций, необходимых
для успешной социализации, сами по себе не создают достаточ
ных условий для свободного развития и социальной зрелости
личности. Личность несвободна, если она не отличает добро от
зла, не ценит жизнь, труд, семью, других людей, общество, Оте
чество, т. е. всё то, в чём в нравственном отношении утвержда
ет себя человек и развивается его личность. Знания наук и нез
нание добра, острый ум и глухое сердце таят угрозу для челове
ка, ограничивают и деформируют его личностное развитие.
Духовно нравственное развитие и воспитание обучающихся
должны быть интегрированы в основные виды деятельности
обучающихся: урочную, внеурочную, внешкольную и общест
венно полезную. Иными словами, необходима интегратив
ность программ духовно нравственного воспитания. Одной
из таких программ может быть обучение духовным основам
религиозной культуры и светской жизни."
это почва для оправдания введения тех самых ОПК как обязательного предмета. Это очень оскорбляет мои атеистические воззрения.
В самом стандарте есть такой перл "
Интересно, почему " элементарные представления о религиозной картине мира, роли традиционных религий в развитии Российского государства, в истории и культуре нашей страны; " не в предмете История средних веков, а в "Воспитание нравственных чувств и этического сознания: "
Почему вообще вот это "
не претендую на глубокий анализ - я не специалист и постараюсь не делать общих выводов. Так, по верхушкам, по цитатам.
Вот читаем базу по "Концепция духовно-нравственного развития и воспитания личности гражданина России " (страница 10):
"В советский период государство обрело всю полноту власти
над гражданином и его частной жизнью. Устраняя влияние церк
ви на общественную и личную жизнь, подавляя религиозное со
знание, советское государство само стало претендовать на роль
новой вселенской церкви. Спектр жизненных смыслов был сжат
до веры в коммунизм и служения коммунистической партии."
Бред какой-то! гундение типично-русских интеллигентиков.
там же на 21 странице вижу бредовый словесный понос:
"Педагогическая поддержка самоопределения личности, раз
вития её способностей, таланта, передача ей системных науч
ных знаний, умений, навыков и компетенций, необходимых
для успешной социализации, сами по себе не создают достаточ
ных условий для свободного развития и социальной зрелости
личности. Личность несвободна, если она не отличает добро от
зла, не ценит жизнь, труд, семью, других людей, общество, Оте
чество, т. е. всё то, в чём в нравственном отношении утвержда
ет себя человек и развивается его личность. Знания наук и нез
нание добра, острый ум и глухое сердце таят угрозу для челове
ка, ограничивают и деформируют его личностное развитие.
Духовно нравственное развитие и воспитание обучающихся
должны быть интегрированы в основные виды деятельности
обучающихся: урочную, внеурочную, внешкольную и общест
венно полезную. Иными словами, необходима интегратив
ность программ духовно нравственного воспитания. Одной
из таких программ может быть обучение духовным основам
религиозной культуры и светской жизни."
это почва для оправдания введения тех самых ОПК как обязательного предмета. Это очень оскорбляет мои атеистические воззрения.
В самом стандарте есть такой перл "
·формирование осознанного и уважительного отношения к традиционным российским религиям и религиозным организациям, к вере и религиозным убеждениям;
" - комментарий такой: с чего бы мне как-то осознанно уважать что-то, что само меня не уважает (ну например настойчиво прозелитят)? Нет, я буду всеми силами стараться привить ребенку настороженное отношение к любым религиозным проявлениям. Любая религия - искуственная несвобода, изначально объяснимая. в диком обществе она признана заменить совесть, но не сейчас. Она выполнилы свои функции и должна быть заменена.Интересно, почему " элементарные представления о религиозной картине мира, роли традиционных религий в развитии Российского государства, в истории и культуре нашей страны; " не в предмете История средних веков, а в "Воспитание нравственных чувств и этического сознания: "
Почему вообще вот это "
·ознакомление по желанию обучающихся и с согласия родителей (законных представителей) с деятельностью традиционных религиозных организаций (путём проведения экскурсий в места богослужения, добровольного участия в подготовке и проведении религиозных праздников, встреч с религиозными деятелями);" включено в программу школы? Кто верит, что это будет добровольно? Я - нет. Хотя, посмотрим.
А!!! Вот и ответ " При разработке и осуществлении программы духовно-нравственного развития и воспитания обучающихся на ступени начального общего образования образовательное учреждение может взаимодействовать, в том числе на системной основе, с традиционными религиозными организациями, общественными организациями и объединениями гражданско-патриотической, культурной, экологической и иной направленности, детско-юношескими и молодёжными движениями, организациями, объединениями, разделяющими в своей деятельности базовые национальные ценности и готовыми содействовать достижению национального педагогического идеала. При этом могут быть использованы различные формы взаимодействия:" ! то есть если с попами будут взаимодействовать на системной основе - даже согласия родителей не спросят - включено в программу!
А!!! Вот и ответ " При разработке и осуществлении программы духовно-нравственного развития и воспитания обучающихся на ступени начального общего образования образовательное учреждение может взаимодействовать, в том числе на системной основе, с традиционными религиозными организациями, общественными организациями и объединениями гражданско-патриотической, культурной, экологической и иной направленности, детско-юношескими и молодёжными движениями, организациями, объединениями, разделяющими в своей деятельности базовые национальные ценности и готовыми содействовать достижению национального педагогического идеала. При этом могут быть использованы различные формы взаимодействия:" ! то есть если с попами будут взаимодействовать на системной основе - даже согласия родителей не спросят - включено в программу!
воскресенье, 6 февраля 2011 г.
дермократия
воистинно свободная и демокрасская страна:
попы ликуют! на очереди Новый год, Масленница, всенародное проклинание Пушкина за сказку о попе, закрытие оставшихся планетариев и сжигание персонала вместе с оборудованием, замена астрономии на закон божЫй.
Занимайтесь своими делами, господин Савченко! Фигней маяться мы и сами можем, без вашего участия.
Губернатор Белгородской обл. запретил День святого Валентина | |
В Белгородской области запретили праздновать День св. Валентина. Соответствующее поручение дал губернатор Белгородской области Евгений Савченко, передает РСН. Документ о "мероприятиях по обеспечению духовной безопасности", который не позволяет отмечать День всех влюбленных, разослан чиновниками по всем образовательным и культурным учреждениям. Директива благословлена архиепископом Белгородским и Старооскольским Иоанном и подписана первым замгубернатора области Олегом Полухиным. Чиновники, помимо контроля за исполнением поручения, также должны объяснить гражданам через...Читать далее > |
попы ликуют! на очереди Новый год, Масленница, всенародное проклинание Пушкина за сказку о попе, закрытие оставшихся планетариев и сжигание персонала вместе с оборудованием, замена астрономии на закон божЫй.
Занимайтесь своими делами, господин Савченко! Фигней маяться мы и сами можем, без вашего участия.
среда, 26 января 2011 г.
Хочу сказать:
1) чтобы похоронить Ленина, сделайте сначала больше чем он.
2)не так страшен чеченский бандит(ка) с бомбой, как продажный русский гаишник.
2)не так страшен чеченский бандит(ка) с бомбой, как продажный русский гаишник.
понедельник, 24 января 2011 г.
Зарегистрируйтесь на DROPBOX и подарите мне 250М
В итоге никто не проиграет, но, мне почему-то кажется, что многие просто уйдут на сайт проекта, чтобы другому на халяву не подфортило ;-0
понедельник, 13 декабря 2010 г.
nibiru Нибиру 2012
Сколько крику, истерики и прочего маразма про эту самую Нибиру! Хех, такие душещипательные сУжеты по ящику! а почитать первоисточник - слабо! а , хотябы, посмотреть сайт http://astrobiology.nasa.gov/ask-an-astrobiologist/intro/nibiru-and-doomsday-2012-questions-and-answers - слабО!
Учите матчасть, одним словом.
Кстати, помните, показали тетку, которой принтер на нибирутском языке печатал? Ей кто нибудь драйвера поставил? Наверное она того загрызет за осквернение нибирутского. Как те правозащитники, которые вопят, что не надо им гебешной статистики по репрессиям всяким, они сами больше напридумают!
Учите матчасть, одним словом.
Кстати, помните, показали тетку, которой принтер на нибирутском языке печатал? Ей кто нибудь драйвера поставил? Наверное она того загрызет за осквернение нибирутского. Как те правозащитники, которые вопят, что не надо им гебешной статистики по репрессиям всяким, они сами больше напридумают!
среда, 1 декабря 2010 г.
НАНО, оно такое нано!
зашел на сайт РОСНАНО. СОлидно! почитал статью - коллеги стали смотреть как на идиота - сильно и неприлично хихикал ;-)
http://www.rusnano.com/Post.aspx/Show/29135
"...В России стоимость электроэнергии уже выше, чем в США, и рост ее идет значительно быстрее. Принимая во внимание, что уже существуют опытные образцы полупроводниковых источников света со световой отдачей в 160 Лм/Вт, можно сказать, что, со временем, окупаемость светодиодных систем освещения будет происходить за меньшее время."
Это учреждение, босс которого сначала был главным приватизатором, потом главным энергетиком.
В тексте, короче, говорится, через некоторое время, стоимость электроэнергии в России будет такова, что очень дорогие и экономичные светодиоды будут окупаться очень-очень быстро. Выгоднее будет строить светопроводы с солнечной стороны шарика. Представляете, такое оптоволокно, которое доставляет солнечный свет на завод! Зеленые уписиются от восторга! Ну или есть еще предложение - покупать китайские батарейки и ими освещаться, наши-то батарейки делать разучились.
Как вам это! Это в стране, в которой есть энергоресурсы, добыча, переработка и доставка потребителю БЕЗ НЕОБХОДИМОСТИ ТАСКАТЬ НЕФТЬ ИЗ-ЗА ОКЕАНА ОТ ВРАЖДЕБНЫХ ПОСТАВЩИКОВ!
РОИССЯ ВПЕРДЕ!
http://www.rusnano.com/Post.aspx/Show/29135
"...В России стоимость электроэнергии уже выше, чем в США, и рост ее идет значительно быстрее. Принимая во внимание, что уже существуют опытные образцы полупроводниковых источников света со световой отдачей в 160 Лм/Вт, можно сказать, что, со временем, окупаемость светодиодных систем освещения будет происходить за меньшее время."
Это учреждение, босс которого сначала был главным приватизатором, потом главным энергетиком.
В тексте, короче, говорится, через некоторое время, стоимость электроэнергии в России будет такова, что очень дорогие и экономичные светодиоды будут окупаться очень-очень быстро. Выгоднее будет строить светопроводы с солнечной стороны шарика. Представляете, такое оптоволокно, которое доставляет солнечный свет на завод! Зеленые уписиются от восторга! Ну или есть еще предложение - покупать китайские батарейки и ими освещаться, наши-то батарейки делать разучились.
Как вам это! Это в стране, в которой есть энергоресурсы, добыча, переработка и доставка потребителю БЕЗ НЕОБХОДИМОСТИ ТАСКАТЬ НЕФТЬ ИЗ-ЗА ОКЕАНА ОТ ВРАЖДЕБНЫХ ПОСТАВЩИКОВ!
РОИССЯ ВПЕРДЕ!
пятница, 26 ноября 2010 г.
Руссо-Маразмо
http://lenta.ru/news/2010/11/26/unstalin/ - чем Сталин был хуже остальных? Не умел так маскировать акции как остальные! Чем он Хуже Николашки-блаженного, нюни развалившего профукавшего державу? Чем он хуже Петра Первого с его реформами? да и на остальных посмотрите.
Нельзя идти на поводу у тех, кто задался целью лишить страну истории и опустить ее в этом до какой-то америки? А посмотрите на ту же америку! тут писать ничего не надо, достаточно почитать учебник истории (любой, какой хотите) о , например, расовой сегрегации, охоте на ведьм.
ХВАТИТ БРЕДА об уникальной кровожадности коммуняк и гэбни, об отсталости России! Они ни чем не выделяются на фоне остальных в истории России , да и всего мира. Проверьте и опровергните, только, чур, без подтасовок!
Нельзя идти на поводу у тех, кто задался целью лишить страну истории и опустить ее в этом до какой-то америки? А посмотрите на ту же америку! тут писать ничего не надо, достаточно почитать учебник истории (любой, какой хотите) о , например, расовой сегрегации, охоте на ведьм.
ХВАТИТ БРЕДА об уникальной кровожадности коммуняк и гэбни, об отсталости России! Они ни чем не выделяются на фоне остальных в истории России , да и всего мира. Проверьте и опровергните, только, чур, без подтасовок!
воскресенье, 14 ноября 2010 г.
для сборки hwgui примеров можно сделать hbmk.hbp файл:
======================
-lart_lgpl_2
-latk-1.0
-lcairo
-lfontconfig
-lfreetype
-lgdk_pixbuf-2.0
-lgdk-x11-2.0
-lgio-2.0
-lglib-2.0
-lgmodule-2.0
-lgnomeprint-2-2
-lgobject-2.0
-lgtcgi
-lgtcrs
-lgthread-2.0
-lgtk-x11-2.0
-lhbcommon
-lhbcpage
-lhbdebug
-lhblang
-lhbmacro
-lhbpp
-lhbrdd
-lhbrtl
-lhbsix
-lhbvm
-lhbxml
-lhwgui
-lm
-lncurses
-lpango-1.0
-lpangocairo-1.0
-lpangoft2-1.0
-lpng12
-lprocmisc
-lrddcdx
-lrddfpt
-lrddntx
-lrt
-lxml2
-lz
-pthread
======================
Я скопировал библиотеки и инклюды hwgui в соответствуюшие директории Харбора. (/usr/local/lib/harbour и /usr/local/include/harbour)
В примере dbview.prg нужно поменять функцию hb_codepage на hb_cdpselect.
======================
-lart_lgpl_2
-latk-1.0
-lcairo
-lfontconfig
-lfreetype
-lgdk_pixbuf-2.0
-lgdk-x11-2.0
-lgio-2.0
-lglib-2.0
-lgmodule-2.0
-lgnomeprint-2-2
-lgobject-2.0
-lgtcgi
-lgtcrs
-lgthread-2.0
-lgtk-x11-2.0
-lhbcommon
-lhbcpage
-lhbdebug
-lhblang
-lhbmacro
-lhbpp
-lhbrdd
-lhbrtl
-lhbsix
-lhbvm
-lhbxml
-lhwgui
-lm
-lncurses
-lpango-1.0
-lpangocairo-1.0
-lpangoft2-1.0
-lpng12
-lprocmisc
-lrddcdx
-lrddfpt
-lrddntx
-lrt
-lxml2
-lz
-pthread
======================
Я скопировал библиотеки и инклюды hwgui в соответствуюшие директории Харбора. (/usr/local/lib/harbour и /usr/local/include/harbour)
В примере dbview.prg нужно поменять функцию hb_codepage на hb_cdpselect.
среда, 10 ноября 2010 г.
пример HWGUI
Чтобы не потерять: пример кода с использованием HWGUI. Найден где-то на форуме. (пример работает, но создается очень маленькле окошко - нужно его раздвинуть)
#include "hwgui.ch"
Function Main
Local oMainWnd, oFont
Local aCombo := {"First","Second" }
PREPARE FONT oFont NAME "MS Sans Serif" WIDTH 0 HEIGHT -13
INIT WINDOW oMainWnd TITLE "Example" ;
FONT oFont ;
ON EXIT {||MsgYesNo("Really want to quit ?")}
@ 20,10 EDITBOX "Hello, World!" SIZE 200,30
@ 270,10 COMBOBOX aCombo SIZE 100, 150 TOOLTIP "Combobox"
@ 120,60 BUTTON "Close" SIZE 150,30 ;
ON CLICK {||oMainWnd:Close()}
MENU OF oMainWnd
MENUITEM "About" ACTION MsgInfo("First HwGUI Application")
ENDMENU
ACTIVATE WINDOW oMainWnd
Return
#include "hwgui.ch"
Function Main
Local oMainWnd, oFont
Local aCombo := {"First","Second" }
PREPARE FONT oFont NAME "MS Sans Serif" WIDTH 0 HEIGHT -13
INIT WINDOW oMainWnd TITLE "Example" ;
FONT oFont ;
ON EXIT {||MsgYesNo("Really want to quit ?")}
@ 20,10 EDITBOX "Hello, World!" SIZE 200,30
@ 270,10 COMBOBOX aCombo SIZE 100, 150 TOOLTIP "Combobox"
@ 120,60 BUTTON "Close" SIZE 150,30 ;
ON CLICK {||oMainWnd:Close()}
MENU OF oMainWnd
MENUITEM "About" ACTION MsgInfo("First HwGUI Application")
ENDMENU
ACTIVATE WINDOW oMainWnd
Return
Подписаться на:
Сообщения (Atom)