Hy everyone, i want to store and get a value from a file. I dont have a problem when i store a value to file. But when i try get the value i got a problem
For example i stored a value to Surti.txt file:
Titlename=sir
Age=21
And when i get the value the output is
Hello titlename=sir.
Your age is Age=21 years old
I want the output is:
Hello sir.
Your age is 21 years old.
And when i get the value i want to check the key, for example:
If i make a variable titlename the value is titlename key value. And if i make a variable age the value is age key value. A variable is loaded from Surti.txt file.
Do you have an idea to do this??
I had attach my flow to explain that
[SOLVED] How to get a value from key?
Moderator: Martin
[SOLVED] How to get a value from key?
- Attachments
-
- flow_Flow2_20170731_173946.xml
- (8.51 KiB) Downloaded 853 times
Last edited by tetsugami on 03 Aug 2017 01:49, edited 1 time in total.
Re: [ASK] How to get a value from key?
Sorry i attach the wrong file here is it..
- Attachments
-
- flow_Surti_Assistant_20170731_180049.xml
- (8.56 KiB) Downloaded 827 times
Re: [ASK] How to get a value from key?
First of all, I change a bit your code, for the getElement(). We can easily access element by using []. I will use this onward.
titlename = list[0] is the same as titlename=getElement(list, 0)
When you saved, you should retrieve it in the same format. When you save it, you save as
That will give you
titlename=sir
umur=21
When you retrieve it, it becomes
listt=split(file_text, "\\n"); list=["titlename=sir","umur=21"]
titlename=getElement(list, 0); titlename="titlename=sir"
umur=getElement(list, 1); umur="umur=21"
As you can see, the "titlename=" is still there. If you want to get the "sir" only, you should split it again using "=". Then the "sir" will be on index 1 (second element).
x=split(list[0], "\\="); split the first line by "="
titlename = x[1]; access the "sir"
y=split(list[1], "\\="); split the second line by "="
umur = y[1]; access the "21"
Then you can use the {titlename} and {umur} anywhere you want.
If the data is only two lines, I prefer just save the data without any tag in front of them. Just save it as
sir
21
Then you only need to split once. To access the "sir", just use list[0] and the "21" just use list[1].
For the TTS, there is Indonesian offline voice from nuance too (Damayanti). You can try that one. Feel free to visit kaskus as well.
titlename = list[0] is the same as titlename=getElement(list, 0)
When you saved, you should retrieve it in the same format. When you save it, you save as
Code: Select all
titlename={titlename}
umur={umur}
titlename=sir
umur=21
When you retrieve it, it becomes
listt=split(file_text, "\\n"); list=["titlename=sir","umur=21"]
titlename=getElement(list, 0); titlename="titlename=sir"
umur=getElement(list, 1); umur="umur=21"
As you can see, the "titlename=" is still there. If you want to get the "sir" only, you should split it again using "=". Then the "sir" will be on index 1 (second element).
x=split(list[0], "\\="); split the first line by "="
titlename = x[1]; access the "sir"
y=split(list[1], "\\="); split the second line by "="
umur = y[1]; access the "21"
Then you can use the {titlename} and {umur} anywhere you want.
If the data is only two lines, I prefer just save the data without any tag in front of them. Just save it as
sir
21
Then you only need to split once. To access the "sir", just use list[0] and the "21" just use list[1].
For the TTS, there is Indonesian offline voice from nuance too (Damayanti). You can try that one. Feel free to visit kaskus as well.
Index of Automagic useful thread List of my other useful posts (and others')
Xiaomi Redmi Note 5 (whyred), AOSP Extended v6.7 build 20200310 Official, Android Pie 9.0, Rooted.
Xiaomi Redmi Note 5 (whyred), AOSP Extended v6.7 build 20200310 Official, Android Pie 9.0, Rooted.
Re: [ASK] How to get a value from key?
Thanks for answering Desmanto, if I have more variables stored in the file, it also needs a lot of variables x and y, can i just use a substr command to get a value from the key or use a searching in the list code??Desmanto wrote:First of all, I change a bit your code, for the getElement(). We can easily access element by using []. I will use this onward.
titlename = list[0] is the same as titlename=getElement(list, 0)
When you saved, you should retrieve it in the same format. When you save it, you save asThat will give youCode: Select all
titlename={titlename} umur={umur}
titlename=sir
umur=21
When you retrieve it, it becomes
listt=split(file_text, "\\n"); list=["titlename=sir","umur=21"]
titlename=getElement(list, 0); titlename="titlename=sir"
umur=getElement(list, 1); umur="umur=21"
As you can see, the "titlename=" is still there. If you want to get the "sir" only, you should split it again using "=". Then the "sir" will be on index 1 (second element).
x=split(list[0], "\\="); split the first line by "="
titlename = x[1]; access the "sir"
y=split(list[1], "\\="); split the second line by "="
umur = y[1]; access the "21"
Then you can use the {titlename} and {umur} anywhere you want.
If the data is only two lines, I prefer just save the data without any tag in front of them. Just save it as
sir
21
Then you only need to split once. To access the "sir", just use list[0] and the "21" just use list[1].
For the TTS, there is Indonesian offline voice from nuance too (Damayanti). You can try that one. Feel free to visit kaskus as well.
I think this app use a java script maybe i can use a searching code in the list. Can i use custom function in this program?
Or can i use a map function?? I see in Script about map,
Ithunk i can use this but how i generate map from list or file
[SOLVED] How to get a value from key?
Yes, i successfull run this script i modify the script like
And the output:
Thanks before for answer my question. )
Maybee i will discus about automagic in kaskus. I attach the file
Code: Select all
list=split(file_text, "\\n");
map=newMap();
for (i in list)
{
x=split(i, "=");
map[x[0]]=x[1];
}
titlename=map["titlename"];
umur=map["umur"];
And the output:
Code: Select all
Hello sir
Your age 21
Maybee i will discus about automagic in kaskus. I attach the file
- Attachments
-
- flow_Surti_Assistant_20170803_084310.xml
- (8.73 KiB) Downloaded 833 times
Re: [SOLVED] How to get a value from key?
Don't know what is the base language for automagic, but i ever read somewhere for the regex part, it is based on java. What is the custom function that you need? You can try to see the Script documentation to check whether there is the function you need. Or you can just simply tap "function" at the script and find the keyword you want. To search, you may use keyword "find" or "search"; there will be some functions you probably need there. There are function substring(), contains() to search within a variable findAll() to find using regex, or indexOf() to search and return the index of search.
Example, to use substring to take the "sir" from "titlename=sir", you can use substring("titlename=sir", 10). Depends on your scripting style, you may use another way to achieve the same thing. (which you have done above)
There is a way to call another language, which is Java method (not javascript) in the script. Just search "Java" at the function. I don't much about how to use it yet. So far I only use java.net.URLDecoder to decode URL back to original (automagic has function encodeURL but there is no decodeURL).
Map Function is used for lookup value, similiar to Vlookup in excel. For example, you have code for product, 00001234; then you want the name of the product. You can maintain a map of lookup, and after this code pass to the map, you have the product name. For your case, it is redundant.
You can just simply create dynamic variable using setValue(). More about dynamic variable at other thread.
http://automagic4android.com/forum/view ... f=5&t=6813
This is you code after remove the map(), leaving only dynamic variable. Of course it only works if you have a fix value for the titlename and umur.
You can't use x[0]=x[1], that is different with setValue(). Try it out and use debug dialog to check the result.
Example, to use substring to take the "sir" from "titlename=sir", you can use substring("titlename=sir", 10). Depends on your scripting style, you may use another way to achieve the same thing. (which you have done above)
There is a way to call another language, which is Java method (not javascript) in the script. Just search "Java" at the function. I don't much about how to use it yet. So far I only use java.net.URLDecoder to decode URL back to original (automagic has function encodeURL but there is no decodeURL).
Map Function is used for lookup value, similiar to Vlookup in excel. For example, you have code for product, 00001234; then you want the name of the product. You can maintain a map of lookup, and after this code pass to the map, you have the product name. For your case, it is redundant.
You can just simply create dynamic variable using setValue(). More about dynamic variable at other thread.
http://automagic4android.com/forum/view ... f=5&t=6813
This is you code after remove the map(), leaving only dynamic variable. Of course it only works if you have a fix value for the titlename and umur.
Code: Select all
list=split(file_text, "\\n");
for (i in list)
{
x=split(i, "=");
setValue(x[0],x[1]);
}
Index of Automagic useful thread List of my other useful posts (and others')
Xiaomi Redmi Note 5 (whyred), AOSP Extended v6.7 build 20200310 Official, Android Pie 9.0, Rooted.
Xiaomi Redmi Note 5 (whyred), AOSP Extended v6.7 build 20200310 Official, Android Pie 9.0, Rooted.
Re: [SOLVED] How to get a value from key?
Its work ) my code is simply now,,
You are right, i am use x[0]=x[1] before and its not work,,
You are right, i am use x[0]=x[1] before and its not work,,