Re: [fpc-pascal] How to use StrToDateTime() to convert a string with no delimiters?
I always use ScanDateTime for such purposes: https://www.freepascal.org/docs-html/rtl/dateutils/scandatetime.html You can explicitly define the pattern. - Original Message - From: Bo Berglund via fpc-pascal To: fpc-pascal@lists.freepascal.org Sent: Monday, April 24, 2023, 20:08:01 Subject: [fpc-pascal] How to use StrToDateTime() to convert a string with no delimiters? I have a device that sends data over the serial port with a timestamp in this format: (230424194642W) This is coded as yymmddhhnnss and the last char designates daylight savings (S)ummer or normal (W)inter time. In the example above it is W for normal winter time. What I have done so far is: - Remove the () at start and end - Remove the W at the end - Add 20 (as the century) up front - Insert a space after the 6th char (so between date and time - Set the TFormatsettings like this (to say that there are no separators): FS.DateSeparator := #0; (Is this how it is done?) FS.TimeSeparator := #0; - Then the call: Value := StrToDateTime(sValue, FS); (Value is declared as TDateTime) This triggers an exception with the message: "194522" is not a valid time What is the proper way to decode a string as shown above? Since the date part could be decoded, why not also the time part, after all I separated the two with a space and set the same separators? -- Bo Berglund Developer in Sweden ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
[fpc-pascal] How to use StrToDateTime() to convert a string with no delimiters?
I have a device that sends data over the serial port with a timestamp in this format: (230424194642W) This is coded as yymmddhhnnss and the last char designates daylight savings (S)ummer or normal (W)inter time. In the example above it is W for normal winter time. What I have done so far is: - Remove the () at start and end - Remove the W at the end - Add 20 (as the century) up front - Insert a space after the 6th char (so between date and time - Set the TFormatsettings like this (to say that there are no separators): FS.DateSeparator := #0; (Is this how it is done?) FS.TimeSeparator := #0; - Then the call: Value := StrToDateTime(sValue, FS); (Value is declared as TDateTime) This triggers an exception with the message: "194522" is not a valid time What is the proper way to decode a string as shown above? Since the date part could be decoded, why not also the time part, after all I separated the two with a space and set the same separators? -- Bo Berglund Developer in Sweden ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] VASM upgrade to 1.9 breaks cross compiler build
Hi, On Sat, 22 Apr 2023, Derek via fpc-pascal wrote: > I downloaded the updated version of vasm v1.9d and compiled and installed as > per Norman's document. Just as a final update to this thread, Frank informed me, that the official vasm 1.9d release is now out, so all users should upgrade to that instead of using the daily snapshot. Just in case. Charlie ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal