Re: [Harbour] Slow create index under threads

2010-05-11 Thread rafa
Hello All,

First; Great!
I have noticed is an improvement of about 2 minutes of not using
Hb_detach () and remove the threads in the creation of indices.

Second;
A question
What advantages are there in using indexes MEMORY?

I do not appreciate any improvement is more, we analyzed under Windows
XP and Vista (Server), as these index are simply created as temporary files;
C: \ Documents and Settings \ Administrator \ Local Settings \ Temp \
hb602.tmp
C: \ Documents and Settings \ Administrator \ Local Settings \ Temp \
hb66D.tmp

Therefore, at least under Windows, I do not see that this is a pure
memory index, as is using a temporary file

In less demanding tests that look, creating over 400 indexes were;

INDEX... MEMORY...
MEMORY: 1 Thread 7.78 (minutes)
MEMORY: 4 Threads 8.58 (minutes)

INDEX
DISC: 1 Thread 7.12 (minutes) WINNER!
DISC: 4 Threads 8.76(minutes )

Or maybe I'm wrong?
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Slow create index under threads

2010-05-11 Thread rafa
Hello,

Mindaugas Kavaliauskas escribió:
> Hi,
>
>
> On 2010.05.11 12:22, rafa wrote:
>>> Of cause. Did you expect your code to behave in a different way?...
>> I thought he reindex all at once ;-)
>> The reason is because only one index reindex a table, while the others
>> wait, I do not know.
>
> The reason is hb_dbdetach(), hb_dbattach(). Workarea is attached only
> after another thread have detached it. So, you should not expect any
> parallelism here.
Ok, I've modified the code to eliminate the use of hb_detach () and no
thread is created for each index.
Performing the test on these pending changes to disk dump memory of the
indexes.
>
>
>> I need to save time when re-indexing on the servers, because we handle a
>> lot of information in the tables, over 12 GB in total.
>
> It is interesting what is copy files time for these 12GB on your
> server. This can give some idea of the result you can reach.
>
>
> Regards,
> Mindaugas
> ___
> Harbour mailing list (attachment size limit: 40KB)
> Harbour@harbour-project.org
> http://lists.harbour-project.org/mailman/listinfo/harbour
>

___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Slow create index under threads

2010-05-11 Thread rafa


Mindaugas Kavaliauskas escribió:
> Hi,
>
>
>> Please could you tell me how to create the index in memory and then
>> flush to disk?
>
> OrdCreate("mem:file.ext", ...)
> I've sent C code for copying file from/to memory a few days ago.
Ok, thanks!
I add MEMORY a command INDEX , And I'll post later the results on
indices of memory.

>
>
>>> These crea() threads do not help to do any valuable job. Function
>>> aCreateIndexe() starts a separate crea() thread for each index tag,
>>> but indexes are not created in parallel, because only one thread has
>>> attached area.
>>>
>> Is it possible to improve this aspect?
>
> You can copy body of crea() into aCreateIndexe() and do not create a
> separate thread. It will save a small overhead of thread
> creation/synchronization, but it will be not significant.
>
Ok.
>
>> Under Windows, usndo ProcessXP, I could see the threads of the indices
>> only run one at a time, while the rest is waiting 
>
> Of cause. Did you expect your code to behave in a different way?...
I thought he reindex all at once ;-)
The reason is because only one index reindex a table, while the others
wait, I do not know.
I need to save time when re-indexing on the servers, because we handle a
lot of information in the tables, over 12 GB in total.

Regards
Rafa Carmona
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Slow create index under threads

2010-05-10 Thread rafa
Hello Mindaugas,

>
> It seems disk io is the bottle neck. You can try to use memio driver
> to create index in memory, and later write it back to disk.
>
Please could you tell me how to create the index in memory and then
flush to disk?
>
>> aadd( aThreads, hb_threadStart( @crea(), cAlias,cExpr,
>> cFileNtx, cFor, nPos, nPosLinea ) )
>> ...
>> proc crea( cAlias, cExpr, cFileNtx, cFor, nPos, nPosLinea )
>>Local nContador := 1
>>
>> hb_dbRequest( cAlias, , , .T.)  // Restaura el alias
>> if empty( cfor )
>> INDEX ON&(cExpr) TO&(cFileNtx) ;
>> ...
>> endif
>> hb_dbDetach( cAlias )  // Libera el alias
>> return
>
> These crea() threads do not help to do any valuable job. Function
> aCreateIndexe() starts a separate crea() thread for each index tag,
> but indexes are not created in parallel, because only one thread has
> attached area.
>
Is it possible to improve this aspect?
Under Windows, usndo ProcessXP, I could see the threads of the indices
only run one at a time, while the rest is waiting 

Regards
Rafa Carmona



___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Slow create index under threads

2010-05-10 Thread rafa
Of course, thanks for your opinion!
I also think it is due to disk.

Regards

Qatan escribió:
> Hello Rafa,
>
>I am not sure, may be wrong but I would say also that the fisical
> access of the HD Head divided in different threads would increase the
> time to access the same ammount of data compared to only one thread.
>This is due to the fisical comings and goings of the Head over the
> disk surface.
>I don't know for SDD but maybe it would have a similar effect
> because multi threading would not be an advantage for disk access,
> only for CPU.
>
> Qatan
>
>
> - Original Message - From: "rafa" 
> To: "Harbour Project Main Developer List." 
> Sent: Monday, 10 de May de 2010 06:20
> Subject: [Harbour] Slow create index under threads
>
>
>> Hello,
>> I'm trying to do a re indexing using threads, but according to tests
>> under Windows Vista,
>> Quarda Intel Core, 4 Gig RAM, the tests are not entirely satisfactory;
>>
>> The basic idea was to determine the number of threads that want to
>> implement,
>> N_THREADS, which is passed by parameter, for testing purposes.
>>
>> Well, times;
>> 1 thread= 29 minutes THE WINNER!
>> 4 threads  = 93 minutes WoW!
>> 7 threads  = 68 minutes
>> 5 Threads = 64 minutes
>>
>> Something to do this by penalizing Harbour indexing, or the code above,
>> you have
>> thing excessively penalized.
>>
>>  SPANISH ---
>> Hola,
>>
>> Estoy intentando hacer una re indexación usando hilos, pero según
>> pruebas bajo Windows Vista,
>> Intel Quard Core, 4 Gigas RAM, los test no son del todo satisfactorios;
>>
>> La idea básica es determinar la cantidad de hilos que queremos poner en
>> marcha,
>> N_THREADS, que es pasado por parámetro, para poder realizar pruebas.
>>
>> Pues bien, los tiempos ;
>> 1 Hilo = 29 minutos  THE WINNER!
>> 4 Hilos = 93 minutos WoW!!
>> 7 hilos = 68 minutos
>> 5 Hilos = 64 minutos
>>
>> Algo hacer Harbour que esta penalizando la indexación, o el código
>> expuesto, tiene alguna
>> cosa que penaliza en exceso.
>>
>> Cualquier comentario es bienvenido para mejorar este aspecto.
>>
>> //-- source code
>> --
>> /*
>>   Example multiThreads index.
>>   One thread by table , and one thread by index.
>>   2010 Rafa Carmona
>>
>>   Thread Main
>>|->  table for test.dbf
>>||> Thread child index fname
>>||
>>||->Thread child index fcode
>>
>>   c:\> ..\..\bin\win\bcc\hbmk2 -mt indexthread -lhbcpage
>> -Le:\harbour\trunk\harbour\lib\win\bcc
>>
>>   New code, now, if thread dead, new thread create!
>>
>> */
>> #include "hbclass.ch"
>> #include "hbthread.ch"
>> #include "common.ch"
>> #include "inkey.ch"
>> #include "FileIO.ch"
>>
>> REQUEST HB_CODEPAGE_ES850, HB_CODEPAGE_ES850C
>> REQUEST HB_LANG_ES
>>
>> static N_THREADS := 5
>>
>> STATIC nTecla
>> STATIC s_num_procesos
>> STATIC s_aLineas := {  }
>> static s_hMutex
>> static s_hHandle_File
>> static s_nCount_Errores := 0
>>
>> proc Main( nHilos )
>>Local nSeconds
>>Local cDbf, lProcesa := .F.
>>Local aFicheros, x
>>Local aDbfs, aNtxs, aKeys , aDesc, aFor, aSel
>>Local aThreads := {}
>>Local nProceso := 0, nLinea, lSalir := .F., nIndex
>>Local nLen_Table
>>Local nPosTable, cCadena, cLine, aTokens, i
>>Local nPos_Column  := 1, g
>>
>>
>>DEFAULT nHilos TO 0
>>
>>if !empty( nHilos )
>>N_THREADS := val( nHilos )
>>endif
>>
>> //HB_SetCodePage( "ES850" ) En xHarbour
>>set( _SET_CODEPAGE, "ES850C" )
>>
>>HB_LANGSELECT('ES')
>>Set( _SET_LANGUAGE, "ES" )
>>
>>
>>setmode( 25,130 )
>>cls
>>
>>@01,0 SAY padc( hb_ansitooem( "  Indexación multihilo. Rafa Carmona"
>> ), 80 )COLOR "N*/W*"
>>@23,0 SAY padc( "Pulse ESC para cancelar." , 80) COLOR "R+/N"
>>
>>   // ONLY for TEST, if necesary many many DBF , with millions records
>> for test.
>>  // My test 

[Harbour] Slow create index under threads

2010-05-10 Thread rafa
Hello,
I'm trying to do a re indexing using threads, but according to tests
under Windows Vista,
Quarda Intel Core, 4 Gig RAM, the tests are not entirely satisfactory;

The basic idea was to determine the number of threads that want to
implement,
N_THREADS, which is passed by parameter, for testing purposes.

Well, times;
1 thread= 29 minutes THE WINNER!
4 threads  = 93 minutes WoW!
7 threads  = 68 minutes
5 Threads = 64 minutes

Something to do this by penalizing Harbour indexing, or the code above,
you have
thing excessively penalized.

 SPANISH ---
Hola,

Estoy intentando hacer una re indexación usando hilos, pero según
pruebas bajo Windows Vista,
Intel Quard Core, 4 Gigas RAM, los test no son del todo satisfactorios;

La idea básica es determinar la cantidad de hilos que queremos poner en
marcha,
N_THREADS, que es pasado por parámetro, para poder realizar pruebas.

Pues bien, los tiempos ;
1 Hilo = 29 minutos  THE WINNER!
4 Hilos = 93 minutos WoW!!
7 hilos = 68 minutos
5 Hilos = 64 minutos

Algo hacer Harbour que esta penalizando la indexación, o el código
expuesto, tiene alguna
cosa que penaliza en exceso.

Cualquier comentario es bienvenido para mejorar este aspecto.

//-- source code
--
/*
   Example multiThreads index.
   One thread by table , and one thread by index.
   2010 Rafa Carmona

   Thread Main
|->  table for test.dbf
||> Thread child index fname
||
||->Thread child index fcode

   c:\> ..\..\bin\win\bcc\hbmk2 -mt indexthread -lhbcpage
-Le:\harbour\trunk\harbour\lib\win\bcc

   New code, now, if thread dead, new thread create!

 */
#include "hbclass.ch"
#include "hbthread.ch"
#include "common.ch"
#include "inkey.ch"
#include "FileIO.ch"

REQUEST HB_CODEPAGE_ES850, HB_CODEPAGE_ES850C
REQUEST HB_LANG_ES

static N_THREADS := 5

STATIC nTecla
STATIC s_num_procesos
STATIC s_aLineas := {  }
static s_hMutex
static s_hHandle_File
static s_nCount_Errores := 0

proc Main( nHilos )
Local nSeconds
Local cDbf, lProcesa := .F.
Local aFicheros, x
Local aDbfs, aNtxs, aKeys , aDesc, aFor, aSel
Local aThreads := {}
Local nProceso := 0, nLinea, lSalir := .F., nIndex
Local nLen_Table
Local nPosTable, cCadena, cLine, aTokens, i
Local nPos_Column  := 1, g


DEFAULT nHilos TO 0

if !empty( nHilos )
N_THREADS := val( nHilos )
endif

 //HB_SetCodePage( "ES850" ) En xHarbour
set( _SET_CODEPAGE, "ES850C" )

HB_LANGSELECT('ES')
Set( _SET_LANGUAGE, "ES" )


setmode( 25,130 )
cls

@01,0 SAY padc( hb_ansitooem( "  Indexación multihilo. Rafa Carmona"
), 80 )COLOR "N*/W*"
@23,0 SAY padc( "Pulse ESC para cancelar." , 80) COLOR "R+/N"

   // ONLY for TEST, if necesary many many DBF , with millions records
for test.
  // My test is over 200 dbfs, with 12GB total size, without NTX.
   aDbfs := { "test", "test2" } // Arrays files dbf  

aNtxs := { { "fname", "fcode" },; // files index for test
  { "fName2" } } // files index for test2  

aKeys := { { "name", "code" },;
  { "dtos(fecha)+str(code)" } } // Expresions

aFor  :=  { { "", ""}, {""} }


nLen_Table := len( aDbfs )
nPosTable  := 1
nSeconds := Seconds()
s_num_procesos := 0
s_hMutex := hb_mutexCreate()
s_hHandle_File := FCreate( "indexpms.log" )

for g := 1 to N_THREADS  // Posicion en la columa por cada numero de
hilo
   aadd( s_aLineas, nPos_Column )
nPos_Column += 16
next


 while nPosTable <= nLen_Table

if ( nTecla := inkey() ) = K_ESC
   exit
endif

if N_THREADS = s_num_procesos // No se ha muerto ningun proceso
  loop
endif

cDbf := aDbfs[ nPosTable ]


if  file( cDbf+".dbf" )
   hb_mutexLock( s_hMutex )
   s_num_procesos++
   hb_mutexUnLock( s_hMutex )
   hb_threadStart( @aCreateIndexe(), cDbf, aNtxs[ nPosTable ],
aKeys[ nPosTable ], aFor[ nPosTable ]  )
endif

nPosTable++
end while

  @23,1 SAY "Espere, terminado reindexaciones pendientes..." + space( 50
) COLOR "R*/N"
  hb_threadWaitForAll() // Esperamos a los ultimos.
  @23,1 SAY "Proceso de indexacion terminado..." + Str( (Seconds() -
nSeconds) /60 ) + space( 50 ) COLOR "W+/N"

  FClose( s_hHandle_File )

return


function aCreateIndexe( cFile, aNtx, aExpr, aFor )
   Local nContador := 1
   Local c

[Harbour] Vdei creation of harbour-project

2010-04-23 Thread rafa

I create video, from tools gource, the harbour project , years 1999-2000

http://www.youtube.com/watch?v=_FEuktpNQmo

Regards
Rafa Carmona
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] Debug and Thread

2010-04-06 Thread rafa
Exists limits debug thread in harbour ?
I don't put breakpoint into thread child, never stop.

thanks!
Rafa Carmona
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] Example MutiThread Index

2010-04-06 Thread rafa
I believe this example is interesant.

Regards
Rafa Carmona

/*
   Example multiThreads index.
   One thread by table , and one thread by index.
   2010 Rafa Carmona

   Thread Main
|->  Thhread child table for test.dbf
||> Thread child index fname
||
||->Thread child index fcode
|
|->  Thhread child table for test2.dbf
|->Thread child index fname2


 */
#include "hbthread.ch"

proc Main( uCreate )
Local nSeconds
Local aFiles  := { "test", "test2" }// Arrays files dbf
Local aNtx:= { { "fname", "fcode" },;   // files index for test
   { "fName2" } }   // files index for test2
Local aExpr   := { { "name", "code" },;
   { "dtos(fecha)+str(code)" }  } // Expresions
Local cDbf

if empty( lCreate )
   lCreate := "0"
endif

setmode( 25,80 )
cls

if uCreate = "1"
   ? "Create test.dbf and test2.dbf"
   dbCreate("test",{ {"name","C",1,0 },{"code","N",7,0 } } )
   use test
   while lastRec() < 100
 dbAppend()
 field->name := chr( recno() )
 field->code := recno()
   enddo
   close
   dbCreate("test2",{ {"fecha","D",8,0 },{"code","N",7,0 } } )
   use test2
   while lastRec() < 100
 dbAppend()
 field->fecha := date() + recno()
 field->code := recno()
   enddo
   close
endif

cls
// Threads
nSeconds := Seconds()
for each cDbf in aFiles
   ? "Process.: " + cDbf
   hb_threadStart( @aCreateIndexe(), cDbf, aNtx[ cDbf:__enumindex ],
aExpr[ cDbf:__enumindex ], cDbf:__enumindex  )
next

? "Wait for threads "
hb_threadWaitForAll()

? hb_valTostr( Seconds() - nSeconds )

? "finish"

return

function aCreateIndexe( cFile, aNtx, aExpr, nPosDbf )
   Local nContador := 1
   Local cFileNtx, cExpr
   Local nLong := Len( aNtx )
   Local aThreads := {}
   Local cAlias

   use ( cFile )
   cAlias := alias()
   hb_dbDetach( cAlias )  // Libero el alias

   for each cFileNtx in aNtx
   cExpr  := aExpr[ cFileNtx:__enumindex ]
   nContador := 1
   nPos := cFileNtx:__enumindex
   aadd( aThreads, hb_threadStart( @crea(), cAlias,cExpr,
cFileNtx, nPos, nPosDbf ) )
   next

   aEval( aThreads, { |x| hb_threadJoin( x ) } )  // wait threads childs
   hb_dbRequest( cAlias, , , .T.)  // Restaura el alias
   close

RETURN NIL

proc crea( cAlias, cExpr, cFileNtx, nPos, nPosDbf )
  Local nContador := 1

   hb_dbRequest( cAlias, , , .T.)  // Restaura el alias

   INDEX ON &(cExpr) TO &(cFileNtx) ;
 EVAL {|| hb_dispOutAt( nPosDbf, iif( nPos = 1, 20, 40 ),
alltrim( hb_valtostr( nContador) ), "GR+/N" ), nContador += INT(
LASTREC() / 100 ) , .T. } ;
 EVERY INT( LASTREC() / 100 )

   hb_dbDetach( cAlias )  // Libera el alias


return

___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Where is function dbRelease ?

2010-04-06 Thread rafa
I find error, i report this error another message!

Regards
Rafa Carmona
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] Please change example mttest09

2010-04-06 Thread rafa
The examples /mt/mttest09.prg

Where is
dbRelease( , {|| xResult } )

change by
 hb_dbDetach( , {|| xResult } )

Regards
Rafa Carmona
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] Where is function dbRelease ?

2010-04-06 Thread rafa
I compile example /mt/mttest09 , but show errors;
Not found function dbRelease()

I find this function , but not exists.

This example, stop line  hb_dbRequest( , , @bResult, .T. )

Harbour 2.1.0dev (Rev. 14255)
Copyright (c) 1999-2010, http://www.harbour-project.org/

Harbour Build Info
---
Version: Harbour 2.1.0dev (Rev. 14255)
Compiler: Borland C++ 5.5.1 (32-bit)
Platform: Windows XP 5.1.2600 Service Pack 2
PCode version: 0.3
ChangeLog last entry: 2010-03-28 19:22 UTC+0200 Viktor Szakats
(harbour.01 syena
r.hu)
ChangeLog ID: ChangeLog 14255 2010-03-28 17:23:00Z vszakats
Built on: Mar 29 2010 10:02:00
Build options: (tracing) (Clipper 5.3b) (Clipper 5.x undoc) (UNICODE)
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] SF.net SVN: harbour-project:[13900] trunk/harbour

2010-02-17 Thread rafa
vszak...@users.sourceforge.net escribió:
> Revision: 13900
>   
> http://harbour-project.svn.sourceforge.net/harbour-project/?rev=13900&view=rev
> Author:   vszakats
> Date: 2010-02-17 10:51:22 + (Wed, 17 Feb 2010)
>
> Log Message:
> ---
> 2010-02-17 11:51 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
>   * src/rtl/hbdyn.c
> ! Adjustments for non-win, non-os2 platforms.
>   
Perfect GNU/Linux Ubuntu 9.04! Thank you!
Regards
Rafa Carmona
___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] Problems create Harbour

2010-02-17 Thread rafa
Hello, today update svn , but i have this problems;

1.- make install; break at this point;

! Installing ../../../lib/linux/gcc/libhbvmmt.a on /usr/local/lib/harbour
gcc   -I. -I../../../../../include -Wall -W -O3 -DHB_LEGACY_TYPES_OFF 
-DHB_HAS_PCRE -I/home/rafa/harbour-project/trunk/harbour/external/pcre
-DPCRE_STATIC -DHB_HAS_ZLIB -I/usr/include  -ohbdyn.o -c ../../../hbdyn.c
../../../hbdyn.c:778: error: expected ‘)’ before ‘*’ token
../../../hbdyn.c:779: error: expected ‘)’ before ‘*’ token
...etc...

2.- Not respected prefix, i define and create directorys
export HB_INC_INSTALL=/home/rafa/harbour2/include
export HB_LIB_INSTALL=/home/rafa/harbour2/lib
export HB_BIN_INSTALL=/home/rafa/harbour2/bin
export HB_INSTALL_PREFIX=/home/rafa/harbour2

But make put the files into /usr/local/bin.
How to create my harbour into directorys /home ? Because this
configuration generate conflict with xharbour.

Regards
Rafa Carmona


___
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] XML from xHarbour compatibility

2009-05-29 Thread rafa
Xavi escribió:
> rafa,
>
>> METHOD New( ) CLASS gConfigHarbour
>>Local oNode, oIter, oNodeLib, cLib, cCheck
>>
>>::Super:New( )
>>
>>if ::lOk
>>   oNode := ::oDoc:FindFirst( ::cNode )
>>   if oNode != NIL
>>  oIter := TXmlIteratorRegex( oNode )
>
> oIter := TXmlIteratorRegex():New( oNode )
>
Ups! Thanks, but... not  is must easy create function TXmlIteratorRegex 
like xHarbour ?

I say for compatibility...

Regards
Rafa Carmona
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] XML from xHarbour compatibility

2009-05-29 Thread rafa
This code running into xHarbour, but under Harbour, show this error;

   Error description:Error BASE/1004  No exported method: NTYPE
   Args:
 [   1] = U   nil

Stack Calls
===
Called from ->NTYPE(0)
Called from ../../txml.prg->TXMLITERATORREGEX:FIND(0)
Called from e_xml.prg->GCONFIGHARBOUR:NEW(62)
Called from e_xml.prg->MAIN(8)

I link lib libxhb.a  in GNU/linux, for compatible xHarbour

- This code, go bottom view example xml


#include "hbclass.ch"
#include "hbxml.ch"

Function Main()
 Local o

 WITH OBJECT o := gConfigHarbour():Create()
  :New()
 END

return nil

// Clase base para configuraciones
CLASS gConfigXml STATIC
  DATA oDoc, cXml, cResponse, cFile
  DATA cNode, cFind
  DATA lOk INIT .T.
  METHOD New() CONSTRUCTOR
ENDCLASS

METHOD New( ) CLASS gConfigXml

   ::cXml := memoread( ::cFile )
   ::oDoc := TXmlDocument():New( ::cXml )

   if ::oDoc:nStatus != HBXML_STATUS_OK
  ::lOk := .F.
  ::cResponse := "Error While Processing File: " + AllTrim( Str(
::oDoc:nLine ) ) + " # "+;
 "Error: " + HB_XmlErrorDesc( ::oDoc:nError ) + " # " +;
 "Tag Error on tag: " + ::oDoc:oErrorNode:cName + "
# " +;
 "Tag Begin on line: " + AllTrim( Str(
::oDoc:oErrorNode:nBeginLine ) )
  return Self
   endif


RETURN Self

// Configurador para Harbour
CLASS gConfigHarbour FROM gConfigXml
  DATA aLibs
  METHOD Create() CONSTRUCTOR
  METHOD New() CONSTRUCTOR
  METHOD GetLibs() INLINE ::aLibs
ENDCLASS

METHOD Create() CLASS gConfigHarbour
   ::aLibs   := {}
   ::cNode := "harbour"
   ::cFind   := "^lib$"
   ::cFile   := "config.xml"
RETURN Self

METHOD New( ) CLASS gConfigHarbour
   Local oNode, oIter, oNodeLib, cLib, cCheck

   ::Super:New( )

   if ::lOk
  oNode := ::oDoc:FindFirst( ::cNode )
  if oNode != NIL
 oIter := TXmlIteratorRegex( oNode )
 oNodeLib := oIter:Find( ::cFind )   // Exactamente lib
 while oNodeLib != NIL
   cLib   :=  cValtoChar( oNodeLib:GetAttribute( "name" ) )
   cCheck :=  cValtoChar( oNodeLib:GetAttribute( "check" ) )
   ? cLib, cCheck // ALERT: Only Information for test
   AADD( ::aLibs, { iif( cCheck = "yes", .T., .F. ), cLib }  )
   oNodeLib := oIter:Next() // Siguiente libreria
 end while
  endif
endif

RETURN Self

/* config.xml for testing


  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  


*/


Regards
Rafa Carmona
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] 1.0.0 file releases uploaded

2008-08-19 Thread rafa

I get from svn the harbour/trunk
I execute as root make_deb.sh but, i find error in this script line 79;

if test_reqpkg libfreeimage-dev
then
   # export HB_CONTRIBLIBS="${HB_CONTRIBLIBS} hbfimage"
fi

#export is error, I quite #.

dh_strip
dh_compress
dh_fixperms
dh_installdeb
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
dpkg-deb: construyendo el paquete `harbour' en 
`../harbour_1.0.0-1_i386.deb'.

dpkg-genchanges -b
dpkg-genchanges: subida solo binaria - no incluyendo ningún código fuente
signfile harbour_1.0.0-1_i386.changes
gpg: `guy.roussin <[EMAIL PROTECTED]>' omitido: clave secreta 
no disponible

gpg: [stdin]: clearsign failed: clave secreta no disponible

dpkg-buildpackage: binary only upload (no source included)
(WARNING: Failed to sign .changes file)


Well, i create .DEB and INSTALL CORRECT!

Very thanks to everybody by this fantastic job!
Rafa Carmona


___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] 1.0.0 file releases uploaded

2008-08-18 Thread rafa

Szakáts Viktor escribió:

Hi Rafa,

I'm afraid I have no idea, sorry. Maybe you would have
better luck with the supplied .tar.gz file, until we
resolve this.

make_deb.sh had minor problems which I've found out
after the release, maybe it had others, or maybe I
messed up something when running make_deb.sh.


Ok. I install svn and running make_deb.sh.
I reporting if I found any problemn.

Thanks!
Rafa Carmona
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] 1.0.0 file releases uploaded

2008-08-15 Thread rafa

Very job, thanks!

Linux (Ubuntu/Debian):
harbour_1.0.0-1_i386.deb

but.. under Ubuntu 7.10 this problem this package .deb;
Error: Dependency is not satisfiable; libncurses5

But.. i have install this packages;
libncurses5--> version 5.6+20070716-1ub
libncurses5-dev-> version 5.6+20070716-1ub

Where is the problem ?

Thanks!
Regards
Rafa Carmona


___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Support XML Library ?

2008-04-24 Thread rafa

Oh! It is problem from file /contrib/mtpl_b32.mak
  
$(CC) $(CLIBFLAGS) -P -o$@ $(OBJ_DIR)\$&.c


This is -P not is correct!

Thank you at M.Marchuet for your help!

Another i have diferents problems with TXML and i report
as soon as possible.

Regards
Rafa Carmona
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Support XML Library ?

2008-04-24 Thread rafa

I have problem with link xhb.lib, not show program. ( under fivewin ).
I link with xHarbour, no problem.
I link with Harbour , no problem. ( without xhb.lib and not include code 
source use txml )

I link with Harbour and xhb.lib, nothing, return direct at the console.

Were is the problem ?

Thank you!
Rafa Carmona
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Support XML Library ?

2008-04-24 Thread rafa

Many Thanks!
I view/make this library.

Regards
Rafa Carmona


___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Support XML Library ?

2008-04-24 Thread rafa

Lorenzo Fiorini escribió:

On Wed, Apr 23, 2008 at 10:34 AM, rafa <[EMAIL PROTECTED]> wrote:

  

 Are you test  in Harbour of XML support ?



  

 If this files are compatibility with Harbour i think that
 put this files in RTL of Harbour, then Harbour the best! ;-)



  

 I waiting ONLY this files , support of XML for change Harbour by xHarbour,
 and this moment i stop this change by this motive.



I'm not sure I understood what you mean ( are you using a translation
software? )

AFAIK XML support is the same, the only difference is that xHarbour
has it in the RTL while Harbour has it in a xhb lib.

  

Lorenzo, please, Can you send me your library txml ?
The files txml.prg and hbxml.c NOT COMPILER in Harbour,
many errrors ;-(

Example;
1.- METHOD GetAttribute( cAttrib ) INLINE IIF ( cAttrib IN 
::aAttributes, ::aAttributes[ cAttrib ], NIL )

2.- ( oFound:cName == NIL .or. .not. oFound:cName LIKE ::cName )
3.- ( oFound:cData == NIL .or. .not. oFound:cData HAS ::cData )

Exist clausule IN, LIKE, HAS in Harbour ?

Questions ;
It's possible portable a Harbour this two files ?

Only this files for total change at Harbour.

( Sorry my bad english )
Regards
Rafa Carmona
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Support XML Library ?

2008-04-23 Thread rafa

Lorenzo Fiorini escribió:

On Mon, Apr 21, 2008 at 5:56 PM, rafa <[EMAIL PROTECTED]> wrote:

  

Please, Its possible using txml.prg and hbxml.c into Harbour ?



Yes.

  

Are you test  in Harbour of XML support ?


 Have Harbour equal API Hash xHarbour ?



Harbour has hashes.

  

If this files are compatibility with Harbour i think that
put this files in RTL of Harbour, then Harbour the best! ;-)

I waiting ONLY this files , support of XML for change Harbour by xHarbour,
and this moment i stop this change by this motive.

Regards
Rafa Carmona
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


[Harbour] Support XML Library ?

2008-04-22 Thread rafa

Please, Its possible using txml.prg and hbxml.c into Harbour ?

It is very interesant and important this files about manager XML.

It have Harbour manager XML ?

I view this source and have functions about tables hash;

hb_hashNew, etc...

Have Harbour equal API Hash xHarbour ?

Regards
Rafa Carmona
___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Multi-Window GT - III - MemoEdit()

2008-02-21 Thread Rafa

Massimo Belgrano escribió:

Is possible define a basic syntax for MULTI WINDOWS gt?

like
DEFINE WINDOW Win_1 ;
AT 0,0 ;
WIDTH 40 ;
HEIGHT 20 ;
TITLE 'Hello World!'
END WINDOW
ACTIVATE MULTIPLE WINDOW Win_1

  

MULTIPLE ? Under GTK+, official, not exist windows MDI.

Please, Can you see source code XWT from xHarbour ?
Giancarlo Niccolai begin this for GTK+ and API Win32.

The idea is similar the AWT Java, or not ?

Regards
Rafa Carmona

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour


Re: [Harbour] Experiences with sqlite?

2008-01-14 Thread Rafa (TESIPRO)

Another implemtation;

   This is implementation the API Sqlite 3 for compilers [x]Harbour.
  
   Copyright 2007 WenSheng

   Copyright 2007 Rafa Carmona <[EMAIL PROTECTED]>

   License: Library General Public License (GNU)

   * Based in job of :
   Copyright 2003 Alejandro de Gárate <[EMAIL PROTECTED]>

   LGPL License.

You can download code source from SourceForge

Protocol: :pserver:
Server: t-gtk.cvs.sourceforge.net
Repository folder: /cvsroot/t-gtk
User name: anonymous
Module: *sqlite3*

Regards
Rafa Carmona

___
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour