Page 1 of 4

How to search and retrive a value

Posted: Thu Nov 30, 2017 11:59 am
by RPC
Hi everybody
I want to search a string(CSV file) read throuh memoread(CSV file) function.
I have to search a Code and then jump back a few commas to retrieve a value.
For eg
Consider the enclosed EQ_ISINCODE_291117.CSV file. In this I want search say code "INE885A01032" after searching that I want to jump back 6 commas to get value 804.75. To search code "INE885A01032" I use AT() function but do not know how to jump back 6 commas to get value of 804.75
Can anybody help ?
TIA
Rajeev
PS-Please note it not jpg file, please rename the file as EQ_ISINCODE_291117.CSV instead of jpg extension.

Re: How to search and retrive a value

Posted: Thu Nov 30, 2017 12:55 pm
by dragancesu

Re: How to search and retrive a value

Posted: Thu Nov 30, 2017 3:03 pm
by esgici
RPC wrote: Thu Nov 30, 2017 11:59 am Hi everybody
I want to search a string(CSV file) read throuh memoread(CSV file) function.
I have to search a Code and then jump back a few commas to retrieve a value.
For eg
Consider the enclosed EQ_ISINCODE_291117.CSV file. In this I want search say code "INE885A01032" after searching that I want to jump back 6 commas to get value 804.75. To search code "INE885A01032" I use AT() function but do not know how to jump back 6 commas to get value of 804.75
Can anybody help ?
TIA
Rajeev
PS-Please note it not jpg file, please rename the file as EQ_ISINCODE_291117.CSV instead of jpg extension.
Hi Rajeev

Would you share a sample .CSV file ?

Happy HMG'ing :D

Re: How to search and retrive a value

Posted: Thu Nov 30, 2017 4:08 pm
by jayadevu
Hi Rajeev,

Please add the following statements to your program to get an array of Rates:

if !empty( cRateFile )
aLines := HB_ATOKENS( MEMOREAD( cRateFile ), LF )
aeval(aLines,{|e| aRecord := HB_ATOKENS(e,","),;
aadd(aRates,aRecord)})
cTimeStamp := SubStr(cRateFile,RAt("_",cRateFile)+1,6)
endif

You can also use the cTimeStamp to retrieve the date portion of the file.

Are you trying to read BSE Sauda File ?

If you need any further help, get in touch with me privately.

Warm regards,

Jayadev

Re: How to search and retrive a value

Posted: Thu Nov 30, 2017 6:29 pm
by BeGeS
RPC wrote: Thu Nov 30, 2017 11:59 am Hi everybody
I want to search a string(CSV file) read throuh memoread(CSV file) function.
I have to search a Code and then jump back a few commas to retrieve a value.
For eg
Consider the enclosed EQ_ISINCODE_291117.CSV file. In this I want search say code "INE885A01032" after searching that I want to jump back 6 commas to get value 804.75. To search code "INE885A01032" I use AT() function but do not know how to jump back 6 commas to get value of 804.75
Can anybody help ?
TIA
Rajeev
PS-Please note it not jpg file, please rename the file as EQ_ISINCODE_291117.CSV instead of jpg extension.
For those things I prefer to use the functions FOPEN() - FREADSTR() - FSEEK() - FCLOSE(). I have never used MEMOREAD(). But I'll tell you what I would do in your case.

Let's suppose that the string that returns MEMOREAD() we call it cCODE.
Then we could do like this:

Code: Select all

FOR H:=1 TO (LEN(cCODE)-11)

  IF SUBSTR(cCODE, H, 12)=="INE885A01032”
     K:=H
     EXIT
  ENDIF

NEXT

COMMAS:=0

FOR H:=K TO 1 STEP(-1)

  IF SUBSTR(cCODE, H, 1)==”,”
    COMMAS+=1
  ENDIF
  IF COMMAS==6 
    J:=H
    EXIT
  ENDIF

NEXT

PRICE:=VAL(SUBSTR(cCODE, J+1, 6))
This is only an idea. You have to be sure that within cCODE is the code you are looking for. And as for the commas, it may be six or seven, depending on whether you are counting the comma that precedes the INE8... code.

Re: How to search and retrive a value

Posted: Thu Nov 30, 2017 8:42 pm
by serge_girard
Rajeev, Best send us (a piece) of the mentionned file in a ZIP or so.

Serge

Re: How to search and retrive a value

Posted: Fri Dec 01, 2017 8:17 am
by RPC
Hi
Thanks to all of you for helping me.
I have already attached the file with jpg extension(to be converted to csv extension)
As required by serge and esgici I enclosing the same file zipped in rar format
@ dragancesu - I will look into link provided by you. Thanks
@ BeGeS - I will try your method. Thanks
@ Jaydev - Yes, I am trying to read BSE bhavcopy. I will try out your code. I will definitely contact you.Thanks
Rajeev Chavan

Re: How to search and retrive a value

Posted: Fri Dec 01, 2017 8:19 am
by RPC
Hi
Sorry to Serge and Esgici, I did not attach file earlier.
Rajeev Chavan

Re: How to search and retrive a value

Posted: Fri Dec 01, 2017 8:44 am
by esgici
RPC wrote: Fri Dec 01, 2017 8:19 am Hi
Sorry to Serge and Esgici, I did not attach file earlier.
Rajeev Chavan
No problem friend 8-)

Happy HMGing :D

Re: How to search and retrive a value

Posted: Fri Dec 01, 2017 9:10 am
by serge_girard
Rajaeev,
You can start with this code:

Code: Select all

#include "hmg.ch"
#Include "Fileio.CH"


FUNCTION MAIN()
/****************/
oFile := TFileRead():New( 'C:\TEST\EQ_ISINCODE_291117.CSV' )
oFile:Open()
IF oFile:Error()
   MSGINFO ( STR(oFile:ErrorNo()) + ' ' + oFile:ErrorMsg( "File open error" ), 'NOK')
   RETURN ''
ENDIF


DO WHILE oFile:MoreToRead()
   cLINE   := ALLTRIM(oFile:ReadLine())

   IF "INE885A01032" $ cLINE
      aLINE := HB_ATOKENS(cLINE, ','  ) 
      EXIT
   ENDIF


ENDDO
oFile:Close()
 
MSGINFO( LEN(aLINE ))
FOR a := 1 TO LEN(aLINE)
   MSGINFO( aLINE [A] )
next
Serge