Jump to content

Recommended Posts

Posted

Hi.

I have this line of code:

$title_A = StringReplace($string_A[0], "[xxx]", "")

Instead of xxx, what command can I use to exclude like the first three letters, the first five, and so on? If it's a random date for example (21 dec 17:36) and I only want the hours (17), then I need to exclude the minutes and date and so on even though I don't know numbers it is? And it's not the current date so @HOUR won't work. How should I do?

Posted

a couple of passes with stringtrim

msgbox (0 , '' , _Hour("21 dec 17:36"))
msgbox (0 , '' , _Hour("2 nov 3:36"))
msgbox (0 , '' , _Hour("9 oct 6:00"))


Func _Hour($sString)

$sStrip1 = stringtrimright(stringtrimleft($sString , 5) , 3)

If stringleft($sStrip1 , 1) = " " Then
    $sStrip2 = stringtrimleft($sStrip1 , 1)
Else
    $sStrip2 = stringtrimleft($sStrip1 , 2)
EndIf

Return $sStrip2

EndFunc

,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-.
|(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/
(_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_)
| | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) (
| | | | |)| | \ / | | | | | |)| | `--. | |) \ | |
`-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_|
'-' '-' (__) (__) (_) (__)

Posted (edited)

a little improvement could be like this:
(pass the date and the part you want to be returned as:
0=day
1=month
2=minutes
3=seconds)
also easly modifiable if date format change, for example also year is included.

MsgBox(0, "Day", _SplitDate("25 dec 23:59", 0)) ; return day
MsgBox(0, "Month", _SplitDate("21 dec 17:36", 1)) ; return month
MsgBox(0, "Minutes", _SplitDate("2 nov 3:36", 2)) ; return minutes
MsgBox(0, "Seconds", _SplitDate("9 oct 6:00", 3)) ; return seconds

Func _SplitDate($sString, $iPart = 0)
    Local $aParts = StringSplit(StringStripWS($sString, 7), " :", 2)
    Return $aParts[$iPart]
EndFunc   ;==>_SplitDate
Edited by Chimp

 

image.jpeg.9f1a974c98e9f77d824b358729b089b0.jpeg Chimp

small minds discuss people average minds discuss events great minds discuss ideas.... and use AutoIt....

Posted

 

a little improvement could be like this:

(pass the date and the part you want to be returned as:

0=day

1=month

2=minutes

3=seconds)

also easly modifiable if date format change, for example also year is included.

MsgBox(0, "Day", _SplitDate("25 dec 23:59", 0)) ; return day
MsgBox(0, "Month", _SplitDate("21 dec 17:36", 1)) ; return month
MsgBox(0, "Minutes", _SplitDate("2 nov 3:36", 2)) ; return minutes
MsgBox(0, "Seconds", _SplitDate("9 oct 6:00", 3)) ; return seconds

Func _SplitDate($sString, $iPart = 0)
    Local $aParts = StringSplit(StringStripWS($sString, 7), " :", 2)
    Return $aParts[$iPart]
EndFunc   ;==>_SplitDate

Nice, even though I don't understand it..

How can I do the same thing with hours?

Posted

Nice, even though I don't understand it..

How can I do the same thing with hours?

 

... sorry, you are right, I write "minutes" and "seconds" where them are "hours" and "minutes" instead... it's just a typo, but it works as well,

passing 2 as second parameter it returns hours (and not minutes)

passing 3 it returns minutes (and not seconds)

sorry :)

in short it works like this:

stringsplit() "dissects" your input string passing each part separated by a space or a colon in single elements into an array

where first part on the left of your string (the day) goes to the first element of the array (first element is element 0) $aParts[0] in this case... and so on

 

image.jpeg.9f1a974c98e9f77d824b358729b089b0.jpeg Chimp

small minds discuss people average minds discuss events great minds discuss ideas.... and use AutoIt....

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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...