Jump to content
hani-dev

open txt and get string between lines ??

Recommended Posts

hani-dev

hello there ...

im trying to get this number from txt file 

Quote

{"ORIGINAL_USER_ID":"732551212"}

this string inside my .txt source code how can i get this value in msgbox : 732551212

note : this value is changed always 

thanx all 

Edited by hani-dev

Share this post


Link to post
Share on other sites
Valuater

This is one way...

 

$Lstring = '{"ORIGINAL_USER_ID":"732551212"}'
$Sstring = StringSplit($Lstring, '"')
MsgBox(0, "String", $Sstring[4])

8)


NEWHeader1.png

Share this post


Link to post
Share on other sites
ViciousXUSMC

That should be really easy.

Go look at the functions FileRead() and _StringBetween()

If you cant get it working post your code and we can help you on the next steps. 

Share this post


Link to post
Share on other sites
hani-dev
20 minutes ago, Valuater said:

This is one way...

 

$Lstring = '{"ORIGINAL_USER_ID":"732551212"}'
$Sstring = StringSplit($Lstring, '"')
MsgBox(0, "String", $Sstring[4])

8)

it's working man thanx very much but can u expalin why we use [4] i dont want just to copy and paste i need to understand

Share this post


Link to post
Share on other sites
Danyfirex

You can do something like this:

#include <StringConstants.au3>



Local $sData = FileRead("1.txt")
ConsoleWrite($sData & @CRLF)

Local $aResult = StringRegExp($sData, '(?:"ORIGINAL_USER_ID"):([^\{,}]+)', $STR_REGEXPARRAYGLOBALMATCH)
$sORIGINAL_USER_ID=StringReplace($aResult[0],'"','')
MsgBox(0,"",$sORIGINAL_USER_ID)

Saludos

  • Like 1

Share this post


Link to post
Share on other sites
hani-dev
2 minutes ago, Danyfirex said:

You can do something like this:

#include <StringConstants.au3>



Local $sData = FileRead("1.txt")
ConsoleWrite($sData & @CRLF)

Local $aResult = StringRegExp($sData, '(?:"ORIGINAL_USER_ID"):([^\{,}]+)', $STR_REGEXPARRAYGLOBALMATCH)
$sORIGINAL_USER_ID=StringReplace($aResult[0],'"','')
MsgBox(0,"",$sORIGINAL_USER_ID)

Saludos

u are the best :D it's working for me very well thanx dany

Share this post


Link to post
Share on other sites
ViciousXUSMC

lol, since this was a good first timer script I figured I would see if he could figure it out.

But with all the complicated solutions posted, I may as well share what I feel is the most basic one.

 

#Include <String.au3>

$sString = FileRead(@ScriptDir & "\YourFile.txt")
$aResult = _StringBetween($sString, 'ORIGINAL_USER_ID":"', '"}')
MsgBox(0, "", $aResult[0])

 

  • Like 1

Share this post


Link to post
Share on other sites
kylomas
Quote

how can i get this value in msgbox : 732551212

$Lstring = '{"ORIGINAL_USER_ID":"732551212"}'
MsgBox(0, "String", stringregexpreplace($Lstring,'.*:"(\d+)"}','$1'))

...Just for grins...


Forum Rules         Procedure for posting code

"I like pigs.  Dogs look up to us.  Cats look down on us.  Pigs treat us as equals."

- Sir Winston Churchill

Share this post


Link to post
Share on other sites
mikell

kylomas,
Grins indeed  :)  because this "txt" file looks a lot like a json
This deserves a one-liner - just for the fun

MsgBox(0,"", StringRegExpReplace(FileRead("1.txt"), '(?s).*ORIGINAL_USER_ID":"([^"]+).*', "$1") )

 

Share this post


Link to post
Share on other sites
jvds
8 hours ago, hani-dev said:

it's working man thanx very much but can u expalin why we use [4] i dont want just to copy and paste i need to understand

because stringsplit returns an array with the elements and your info is on the array element number 4, $Sstring is an array, not a string anymore
in other words '{"ORIGINAL_USER_ID":"732551212"}' is your pizza, and when you slice it on every " character you have an array, and each slice(element) have a piece of pizza(string) in it, in this case your pizza have 5 slices if you cut it on the " character =P

#include <StringConstants.au3>
#include <Array.au3>

$Lstring = '{"ORIGINAL_USER_ID":"732551212"}'
$Sstring = StringSplit($Lstring, '"')
;~ MsgBox(0, "String", $Sstring[4])
_ArrayDisplay($Sstring)

ConsoleWrite('$Sstring[3]='&$Sstring[3]&@CRLF)
ConsoleWrite('$Sstring[4]='&$Sstring[4]&@CRLF)
ConsoleWrite('$Sstring[5]='&$Sstring[5]&@CRLF)

;$Sstring[6] will crash your script because there is only 5 elements
;~ ConsoleWrite('$Sstring[6]='&$Sstring[4]&@CRLF)

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×