Whoa, lot of activity today, huh?
I think I solved your questions regarding your two issues:
(Note: I did test this!)
1.)
if I want to have
num 1's earliest time and lasted time
num 2's earliest time and lasted time
num 3's earliest time and lasted time
2.)
what if I don't know exact numbers?
num1
num2
num3
This works great, give it a try ! I've just appended code to your previous code, beginning at Start of cptk's
set readFile [open "listsort.txt" "r"]
gets $readFile line
while {![eof $readFile]} {
# write the line to the backup file "output this line to a file"
set lineList1 [string map {\" ""} $line]
set storeNum [lindex $lineList1 0]
set startTime [lindex $lineList1 1]
set closeTime [lindex $lineList1 2]
puts "$storeNum $startTime $closeTime"
#set lineList2 [split $lineList1 " "]; #make a proper list
lappend storeList $lineList1; #list of lists
gets $readFile line
}
#now work on storeList
#set openList [lsort -index 1 $storeList]
set openList [lsort -index 1 $storeList]
puts "earliest opening time = [lindex $openList 0]"
set closeList [lsort -index 2 -decreasing $storeList]
puts "latest closing time = [lindex $closeList 0]"
##### Start of cptk's #####
set StoreName ""
set StoreId ""
set StoreNum ""
for {set i 0} {$i < [llength $storeList]} {incr i} {
if {$StoreId == [lindex [lindex $storeList $i] 0]} {
lappend store($StoreId) [lindex $storeList $i]
} else {
set StoreId [lindex [lindex $storeList $i] 0]
lappend store($StoreId) [lindex $storeList $i]
}
if {[lsearch -exact $StoreName store($StoreId)] == -1} {
lappend StoreName store($StoreId)
lappend StoreNum $StoreId
}
}
set StoreNum [lsort -index 0 $StoreNum]
foreach elem $StoreNum {
set storeOpen($elem) [lsort -index 1 $store($elem)]
set storeClose($elem) [lsort -index 2 -decreasing $store($elem)]
puts "Store # $elem Early : [lindex [lindex $storeOpen($elem) 0] 1]"
puts "Store # $elem Lastest: [lindex [lindex $storeClose($elem) 0] 2]"
}