2016-10-17 83 views
0

我試圖簡單地比較文本文件中的一行到今天的日期。 我需要幫助的線路似乎總是對我的代碼評價正確。 任何示例?IRC字符串比較始終爲真

我的代碼:

set %lines $lines(test.txt) 
set %date $adate 

while (%i <= %lines) 
    set %read $read(test.txt, n, %i) 

    if(%date isin %read){ ; <-- Line in question 
    do things 
    } 
} 

回答

0

你有幾個錯誤。

您的while循環缺少一個開放的括號。 (而在結束時關閉)

while (%i <= %lines) { 

你必須有(之間有空格){}和線

if<space>(
)<space> { 

if (%date isin %read) { 

其餘我暗示了另外一個版本的自由。

代碼:

var %filename = test.txt 
    var %lines = $lines(%filename) 
    var %currentDate = $adate 
    var %i = 1 
    while (%i <= %lines) { 
    var %line = $read(%filename, n, %i) 
    if (%currentDate isin %line) { 
     # do things 

     # Should uncomment the break in case you want to stop after a match 
     #break 
    } 
    inc %i 
    } 
+0

什麼是var%date? –

+0

@ Sirius_Black,感謝您的評論,修復了未使用的回聲 –

+0

感謝您爲我這樣的初學者提供你的時間。仍在學習,一點一滴。 – MrJerkBird

0

很抱歉,如果我不明白,但什麼複雜的腳本的原因只是爲了檢查是否有一條線的文本文件的日期格式?

沒有理由設置變量%讀取存儲在疑問,環路,線時,你可以在循環後做一個IF條件

var %x = 1 
while (%x <= $lines(test.txt)) { 
if ($adate isin $read(test.txt,n,%x)) { 
;do things 
} 
inc %x 
} 

再次,如果我不明白對不起

+0

你儘可能地理解你。在IRC編碼方面,我仍然非常青睞。我只是嘗試了幾個不同的事情來理解他們的工作方式。當時我不知道空白是如此挑剔(拋開括號錯誤) – MrJerkBird