[fpc-pascal] Re: Library for network calculation

Jorge Aldo G. de F. Junior jagfj80 at gmail.com
Wed Jul 27 22:02:46 CEST 2011


nice, that was new to me :)

2011/7/27 Sven Barth <pascaldragon at googlemail.com>:
> On 27.07.2011 12:22, Dimitri Smits wrote:
>>
>> don't have a Delphi in reach for the moment to verify, but you could do
>> that to a const (if you enable the assignable constants setting)
>>
>> procedure SomeProc;
>> const
>>   someconst: Integer = 22;
>> begin
>>   //blabla
>>   someconst := 42;
>>   //yadda yadda
>> end;
>>
>
> In this case "someconst" will keep the assigned value during different
> functions calls.
>
> For example:
>
> === source begin ===
>
> procedure SomeProc;
> const
>  someconst: Integer = 21;
> begin
>  if someconst = 42 then
>    Writeln('The answer')
>  else begin
>    Writeln('Not the answer');
>    someconst := 42;
>  end;
> end;
>
> begin
>  SomeProc;
>  SomeProc;
> end;
>
> === source end ===
>
> will print:
>
> === output begin ===
>
> Not the answer
> The answer
>
> === output end ===
>
> This was considered as the equivalent of a local static variable.
>
> In case of "var" the definitions are normal variables and semantically
> equivalent to an initialization of the variable at the beginning of the
> function.
>
> Regards,
> Sven
>
>>
>> ----- "Sven Barth"<pascaldragon at googlemail.com>  schreef:
>>
>>> Well... seems like you didn't notice this feature yet :D
>>>
>>> I'm talking about this:
>>>
>>> === source begin ===
>>>
>>> procedure SomeProc;
>>> var
>>>    somevar: Integer = 42;
>>> begin
>>>
>>> end;
>>>
>>> === source end ===
>>>
>>> This works in FPC, but doesn't in Delphi ;)
>>>
>>> Regards
>>> Sven
>>>
>>> Am 26.07.2011 21:27, schrieb Jorge Aldo G. de F. Junior:
>>>>
>>>> I dont like to take local variable initialization for granted.
>>>>
>>>> Even if the manual says that its guaranteed that a local variable
>>>
>>> will
>>>>
>>>> start with 0,
>>>> i prefer to initialize everything to a known value myself.
>>>>
>>>> An aditional
>>>>
>>>> Move $varaddress, 00
>>>>
>>>> at startup wont slow things down noticeably when your pc is running
>>>
>>> at 2ghz...
>>>>
>>>> This unit needs to take care of big endian vs. low endian (maybe a
>>>
>>> $define ?)
>>>>
>>>> When i wrote that code i did not pay attention to this...
>>>>
>>>> Anything more complex (like interacting with DHCP server) would be
>>>
>>> too
>>>>
>>>> complex and probably dependent on external units (like synapse x
>>>
>>> lnet
>>>>
>>>> etc). Some people might prefer to use other library instead of the
>>>> default choosen one, etc...
>>>>
>>>> 2011/7/26 Sven Barth<pascaldragon at googlemail.com>:
>>>>>
>>>>> On 26.07.2011 01:23, Paul Nicholls wrote:
>>>>>>
>>>>>> "Jorge Aldo G. de F. Junior"
>>>>>> <jagfj80 at gmail.com>     wrote in message
>>>>>>
>>>
>>> news:CAAHHabS9aUe9gwyNjkve-XVXsRyf2UPsArh6=fSDPGoKugjfsA at mail.gmail.com...
>>>>>>>
>>>>>>> Some time ago someone asked for a library able to do network
>>>>>>> calculations.
>>>>>>>
>>>>>>> Here is something that might evolve into such library :
>>>>>>>
>>>>>> <SNIP>
>>>>>>>
>>>>>>> Function NetMaskToHostMask(NetMask : TNetworkIP): TNetworkIP;
>>>>>>> Begin
>>>>>>> Result.Mode := False;
>>>>>>> NetMask.Mode := False;
>>>>>>> Result.IP := NetMask.IP Xor %11111111111111111111111111111111;
>>>>>>> End;
>>>>>>>
>>>>>> <SNIP>
>>>>>>
>>>>>> I didn't know that freepascal handled binary formatted numbers?!?
>>>>>>
>>>>>> %11111111111111111111111111111111
>>>>>
>>>>> There are often new things one can learn about what FPC supports ;)
>>>
>>> (though
>>>>>
>>>>> binary numbers are already old for me ^^)
>>>>>
>>>>> The most recent finding (at least for me) was the abbility to
>>>
>>> initialize
>>>>>
>>>>> local variables.
>>>>>
>>>>> Regards,
>>>>> Sven
>>>>>
>>>>> _______________________________________________
>>>>> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
>>>>> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>>>>>
>>>> _______________________________________________
>>>> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
>>>> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>>>
>>> _______________________________________________
>>> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
>>> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>>
>> _______________________________________________
>> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
>> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>



More information about the fpc-pascal mailing list