2012-11-02 18 views
1

如何去掉在X ++中刪除容器最後一個元素的回車換行?AX中的StrReplace函數

當我爲長度創建另一個變量時,字符串是9,而不是8,因爲它包含了CRLF。

我試過使用strreplace([container element], '\n', ''),因爲'\n'inRecordDelimiter文件,但是這似乎起作用了。

任何想法?

回答

0

看來你正在讀取文件輸入。爲什麼不首先避免冒犯角色?

如果使用AsciiIoTextIo,則可以使用inRecordDelimiter接受文件的正確行尾分隔符。

又見相反的問題:How to read text files transfered as binary

+0

很抱歉的響應延遲,我差點忘了張貼這。在我使用strreplace時,我不得不尋找回車符('\ r),而不是新的換行符('\ n')。再次感謝 –

1

有回車符('\ r')和換行符('\ n')。有時使用一個或兩個。與strReplace(...),它將替換另一個字符模式。所以最好分別替換'\ n'和'\ r',因爲'\ r \ n'與'\ n \ r'不同。

strReplace("?!?!?", "?!?", "*") 
//returns the text string "*!?". 

低於此作業有2行,實際上做的工作,其他的循環只是向你展示字符串的ASCII字符值。你應該這樣做來分析你的字符串,看看剩下的是什麼。

static void Job69(Args _args) 
{ 
    container con = ['string1', 'str2', 'John Smith' + '\r\n' + '123 south st' + '\r\n' + 'Chicago, IL 60652']; 
    int i; 
    ; 

    for (i=1; i<=strlen(conpeek(con, conlen(con))); i++) 
    { 
     // This just lets you see ascii codes 
     info(strfmt("%1 - %2", char2num(conpeek(con, conlen(con)), i), substr(conpeek(con, conlen(con)), i, 1))); 
    } 

    // This code does the work 
    con = conpoke(con, conlen(con), strReplace(conpeek(con, conlen(con)), '\r', '')); 
    con = conpoke(con, conlen(con), strReplace(conpeek(con, conlen(con)), '\n', '')); 

    for (i=1; i<=strlen(conpeek(con, conlen(con))); i++) 
    { 
     // This just lets you see ascii codes 
     info(strfmt("%1 - %2", char2num(conpeek(con, conlen(con)), i), substr(conpeek(con, conlen(con)), i, 1))); 
    } 

}