ーー
WinXP
VC6.0
MFCの環境です。
ーー
ファイル操作で、質問があります。
ファイルオープンし、そのファイルをReadStringで一行づつ読み込んだ後、
CStringArray配列に保持しています。
その配列の中の、一行目の削除について質問があります。
ご教授のほどよろしくお願いします。
読み込むファイルは、csvファイルで
(例)
食べ物,乗り物,数\r
りんご,自動車,10
バナナ,船,5
といった内容になります。
今回、削除したい行は、常に1行目の「食べ物,乗り物,数\r」と決まっています。
コード上では、
while(stdFile.ReadString(csStr)) //一行読む
{
m_Array.Add(csStr);//Add
}
とやっていて、読み込んだファイルをm_Arrayという
CStringArray配列で保持しています。
このwhile文の中で、一行目だけを削除して
CStringArray配列に改めて保持したいと思っていますが、
その一行目だと見極めることができません。
どうしたらよいでしょうか?
削除は、RemoveAtを使おうと考えていますが・・・。
よろしくお願いします。
ループ前に読み捨てる記述を入れればよいのでは?
// 読み捨て用
strFile.ReadString(csStr);
// 2行目から読み込むことになる
while(stdFile.ReadString(csStr)) //一行読む
{
m_Array.Add(csStr);//Add
}
if文を入れたほうがよかったかも。
// 読み捨て用
if (strFile.ReadString(csStr))
{
// 2行目から読み込むことになる
while(stdFile.ReadString(csStr)) //一行読む
{
m_Array.Add(csStr);//Add
}
}
RemoveAtを使うのであれば、インデックス0番目が先頭行なので簡単に出来るのでは?
if (m_Array.GetSize() > 0)
m_Array.RemoveAt(0);
まぁ、CArray系のクラスは要素数が多いときの削除処理や挿入処理に向かないので前者
を使うべきですけど。
解決しました!
Blueさん、ありがとうございましたm(__)m