Author |
Topic: struct type ptr (Read 3390 times) |
|
SarmedNafi
Junior Member
member is offline


Posts: 93
|
 |
Re: struct type ptr
« Reply #33 on: Nov 23rd, 2015, 10:54am » |
|
Dear pnlawrence,
I have a question if you please. What is the benefits of using API for creating an initial file (.ini)? Why not using a normal sequential file? as I always did?
Regards Sarmed
|
|
Logged
|
|
|
|
joker
Global Moderator
member is offline


Gender: 
Posts: 157
|
 |
Re: struct type ptr
« Reply #34 on: Nov 23rd, 2015, 11:10am » |
|
Hey, Alyce, it was a joke. We're free to joke around on this forum.
Hey, Alyce, how come you can freely post on this forum for Liberty Basic Booster AKA LBB, about things that happen on the LB forum but it is "against the rules" for ANYONE to do the reverse? I'm just curious.
Wouldn't it be nice if Richard could comment on topics of interest to LBB on the LB forum? It is kind of difficult with the current arrangement.
I'm sure that Richard could have had several helpful suggestions with recent posts, but I don't think he's on the list of members with posting privileges. (Actually, he did comment, but he had to do it on this forum only. Remember that? I admit to copying text from LB to LBB forum, so there's your opportunity with the broken rule.)
I've read all the tiring posts about "promoting" etc., but I fail to see the difference between "promoting" Liberty Basic Booster and "promoting" languages like "Visual Basic" or "C" or "C++" or "Pascal" or etc. I'm purty sure those are OK to write about on that forum.
Can you explain how "promoting" those other languages are OK on the LB forum, but no one can even obliquely mention Liberty Basic Booster? (You surreptitiously deleted a forum post of mine because I obliquely mentioned Liberty Basic Booster.)
I'm just curious.
PS. Feel free to comment here, because I'm hoping to clear the air and get these BASIC programs back into a cooperative state instead of stuck in 2006.
|
|
Logged
|
|
|
|
joker
Global Moderator
member is offline


Gender: 
Posts: 157
|
 |
Re: struct type ptr
« Reply #35 on: Nov 23rd, 2015, 11:12am » |
|
Another tool in the toolbox. You can do both within the same file, too.
on Nov 23rd, 2015, 10:54am, SarmedNafi wrote:| What is the benefits of using API for creating an initial file (.ini)? Why not using a normal sequential file? as I always did? |
|
|
| « Last Edit: Nov 23rd, 2015, 11:12am by joker » |
Logged
|
|
|
|
Richard Russell
Administrator
member is offline


Posts: 1348
|
 |
Re: struct type ptr
« Reply #36 on: Nov 23rd, 2015, 11:17am » |
|
on Nov 23rd, 2015, 12:16am, pnlawrence wrote:They wouldn't listen anyway. They think I'm being difficult. I'll probably get banned, too. |
|
Hmm, sounds like things are getting worse over there, if anything. I wonder if it stems from disappointment with LB 4.5.0; many people must have been hoping for a more comprehensive update, with many more bugs being fixed.
Has Carl released LB Pro 4.5 yet? I think it was a very unwise decision to delay it because LB Pro users represent some of his most loyal and enthusiastic customers. In his position I wouldn't have released any update until both regular and Pro versions were ready.
Richard.
|
|
Logged
|
|
|
|
Richard Russell
Administrator
member is offline


Posts: 1348
|
 |
Re: struct type ptr
« Reply #37 on: Nov 23rd, 2015, 11:33am » |
|
on Nov 23rd, 2015, 10:54am, SarmedNafi wrote:| What is the benefits of using API for creating an initial file (.ini)? |
|
It's a standard format, which many people are familiar with, so editing such a file doesn't involve learning anything new.
The API allows you to read and write individual records, without having to update the entire file.
STRUCTs can be stored in the file, something which is difficult (or impossible) to do with regular LB sequential or random files.
Because structs can be stored, floating-point numeric values (DOUBLEs) can be saved in the file with no loss of precision. With a conventional file numbers must be converted to strings and back, which is often lossy.
The file is never 'open' in LB, so a crash or other bug can't leave a corrupted INI file behind, or delete it.
It's much easier than writing, testing and maintaining the code yourself. Richard.
|
|
Logged
|
|
|
|
tsh73
Full Member
member is offline


Gender: 
Posts: 210
|
 |
Re: struct type ptr
« Reply #38 on: Nov 23rd, 2015, 11:44am » |
|
SarmedNafi
>>A link please Dear Madam, I will appreciate that.
WritePrivateProfileStructA Demo
|
| « Last Edit: Nov 23rd, 2015, 11:45am by tsh73 » |
Logged
|
|
|
|
Richard Russell
Administrator
member is offline


Posts: 1348
|
 |
Re: struct type ptr
« Reply #39 on: Nov 23rd, 2015, 11:59am » |
|
on Nov 23rd, 2015, 11:10am, pnlawrence wrote:| I'm sure that Richard could have had several helpful suggestions with recent posts, but I don't think he's on the list of members with posting privileges. |
|
I'm not even allowed to read the LB Forum, let alone post there; I can't even see what guests, who have never joined, are allowed to see. 
There was a time, in the distant past, when I was allowed to be a member of, and even post to, the LB Forum. I contributed a number of posts which I like to think were valuable, for example demonstrating how COM Objects could be called from LB, something which had previously been believed to be impossible without a helper DLL.
But I made the mistake of using the Private Messaging system for exactly what the rules (at the time) encouraged its use for - i.e. communicating with other members about 'sensitive' subjects not permitted in posted messages (in this case telling them about LBB when they had posted a query that LBB provided a solution for).
Apparently some recipients of those messages complained to the forum administrators about them (why they would complain about being given an answer to their queries I don't know). I wasn't told about those complaints (at the time), I was never asked not to send messages of that sort, there was never any direct communication with me at all. I was simply banned.
Richard.
|
|
Logged
|
|
|
|
SarmedNafi
Junior Member
member is offline


Posts: 93
|
 |
Re: struct type ptr
« Reply #40 on: Nov 23rd, 2015, 12:06pm » |
|
Alyce, Richard, Anatoly, and Pnlawrence, thank you very much.
All the best, Sarmed
|
|
Logged
|
|
|
|
joker
Global Moderator
member is offline


Gender: 
Posts: 157
|
 |
Re: struct type ptr
« Reply #41 on: Nov 23rd, 2015, 1:18pm » |
|
on Nov 23rd, 2015, 12:06pm, SarmedNafi wrote:| Alyce, Richard, Anatoly, and Pnlawrence, thank you very much. |
|
Sarmed, my FUNCTION example only shows about saving a string, and as Richard says, string saving is so inefficient ... more than 2 to 1 inefficient. So, as Richard neatly posted above, there are so many other and better reasons to use this method. I am probably going to combine both API methods, because I have several types of variables in my project's INI file.
|
| « Last Edit: Nov 23rd, 2015, 1:19pm by joker » |
Logged
|
|
|
|
SarmedNafi
Junior Member
member is offline


Posts: 93
|
 |
Re: struct type ptr
« Reply #42 on: Nov 24th, 2015, 01:53am » |
|
Yes Paul,
Thank you for the hint. Hope I wrote a correct name.
Sarmed
|
| « Last Edit: Nov 24th, 2015, 01:56am by SarmedNafi » |
Logged
|
|
|
|
SarmedNafi
Junior Member
member is offline


Posts: 93
|
 |
Re: struct type ptr
« Reply #43 on: Nov 24th, 2015, 02:20am » |
|
Quote:I'm not even allowed to read the LB Forum, let alone post there; I can't even see what guests, who have never joined, are allowed to see. |
|
I wonder, If we suppose that one day say Anatoly used Russian language and wrote some Booster or simulator for Liberty Basic. Is he going to be banned? Why Richard banned? Is that because Richards TIMER was not broken, or work better than Carls TIMER? I Just wonder? Richard fond of LB syntax which created by Carl. Is he make a crime because of that? We still all of us purchase licence for LB as necessary. Richard and his booster don't prevent us from that. Whey then??
|
| « Last Edit: Nov 24th, 2015, 02:22am by SarmedNafi » |
Logged
|
|
|
|
Richard Russell
Administrator
member is offline


Posts: 1348
|
 |
Re: struct type ptr
« Reply #44 on: Nov 24th, 2015, 08:30am » |
|
on Nov 24th, 2015, 02:20am, SarmedNafi wrote:| We still all of us purchase licence for LB as necessary. Richard and his booster don't prevent us from that. |
|
There seems to be an assumption in some quarters that the existence of LBB necessarily operates against Carl's interests, for example by taking away paying customers. But that isn't always the case; I know of people who have stuck with Liberty BASIC - and therefore continue to promote and support it - solely because of LBB. If LBB had not existed they would have abandoned the language altogether because of its bugs and limitations.
Richard.
|
|
Logged
|
|
|
|
joker
Global Moderator
member is offline


Gender: 
Posts: 157
|
 |
Re: struct type ptr
« Reply #45 on: Nov 24th, 2015, 4:32pm » |
|
The following are the two functions that I ended up working with. They don't just return one key.
Your mileage may vary! :D
Code:
function WriteINIStruct(SectionName$,KeyName$,inifile$)
' Returns true (1) if nothing wrong or false (0) if a problem
'code by Richard Russell
size = len(theStruct.struct)
calldll #kernel32, "WritePrivateProfileStructA", _
SectionName$ as ptr, _ ' Section name
KeyName$ as ptr, _ ' Key name
theStruct as struct, _ ' Structure
size as ulong, _ ' Size of structure
inifile$ as ptr, ret as long
WriteINItheStruct = ret
end function
function GetINIStruct(SectionName$,KeyName$,inifile$)
' Returns true (1) if nothing wrong or false (0) if a problem
'code by Richard Russell
size = len(theStruct.struct)
calldll #kernel32, "GetPrivateProfileStructA", _
SectionName$ as ptr, _ ' Section name
KeyName$ as ptr, _ ' Key name
theStruct as struct, _ ' Structure
size as ulong, _ ' Size of structure
inifile$ as ptr, ret as long
GetINIStruct = ret
end function
|
|
Logged
|
|
|
|
|