現在ダイアログベースでアプリケーションを作成してます。
リストビューに表示されている値をテキスト形式で保存したいのですが
どのようにしたらいいかわかりません。
void CPict1Dlg::OnButton1()
{
CFileDialog myDLG( FALSE,"txt","*.txt",
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"テキスト(*.txt)|");
if( myDLG.DoModal()==IDOK ){
CStdioFile fout(myDLG.GetPathName(),CFile::modeCreate|CFile::modeWrite| CFile::typeBinary);
fout.WriteString(m_list5);
fout.WriteString("x1a\");
}
}
現在このようにしているのですができません。
どのようにして取得を行い、保存をすればいいのかわかりません。
アドバイスをお願いします。
名前をつけて保存を表示させその
あとにリストビューに表示されているすべてのデータを保存
する流れが行いたいです。
リストの内容を一発保存する関数などないので、自分で書き込むソースを
書く必要があります。
1行だけの場合は以下の様になります。(検証してません。
おかしい所は直してください。カラムは保存していません。)
int count = m_list5.GetItemCount() ;
for(i = 0 ; i < count ; i++ )
{
fount.WriteString( m_list5.GetItemText( i , 0 ) ) ;
fount.WriteString("\r\n") ;
}
とおりすがりさまありがとうございます。
カラムを保存するときは
fount.WriteString( m_list5.GetItemText( i , 0 ) ) ;
を
fount.WriteString( m_list5.GetItemText( i , randamu[i] ) ) ;
このように変更してみたのがだめでした。
randamu[i]のあたいはリストビューに表示させてるものなのですが
この書き方ではだめなのですか?
> カラムを保存するときは
> fount.WriteString( m_list5.GetItemText( i , 0 ) ) ;
> を
> fount.WriteString( m_list5.GetItemText( i , randamu[i] ) ) ;
> このように変更してみたのがだめでした。
> randamu[i]のあたいはリストビューに表示させてるものなのですが
> この書き方ではだめなのですか?
あちらでも書かれていますが、まずはマニュアル(MSDN)をよく読んで下さい。
あと、randamu[i]の具体的な中身はなんですか?
レポート形式の表示で、カラムの入れ替えが可能な状態だったとすると、
表示されている並びで取得するのはかなり面倒そうではありますが。
(入れ替えを自分で管理していればそれほどでもないでしょうが…)
# 一般的にマルチポストは嫌われるというコトは理解しておいた方がいいでしょう。
# http://www.mtakahashi.com/cgi.cgi?12256
瀬戸っぷさんも書かれている通りrandamu[i]が何者か判らないと
なんとも言えませんね。
>fount.WriteString( m_list5.GetItemText( i , randamu[i] ) ) ;
GetItemTextの第二引数は行番号です。そこに何を入れてもカラムを
取得できません。
CString str , str2;
LVCOLUMN col = {0,};
col.mask = LVCF_TEXT ;
for( int i = 0 ; i < x/*カラム数*/ ; i++ )
{
col.pszText = str.GetBuffer(100) ;
col.ccTextMax = 100 ;
m_list5.GetColumn( i , &col ) ;
str.ReleaseBuffer() ;
str2 += str ;
str2 += "," ;
}
str2 += "\r\n" ;
fount.WriteString(str2) ;
カラム取得ならこんなんか?
ありがとうございます。
名前をつけて保存したデータを
リストビュー名前を選択して入力させるなど可能ですか?
えっと調べてもわからなかったのですが
出力された文字列をデータとしてまた扱うことって可能ですか?
> 名前をつけて保存したデータを
> リストビュー名前を選択して入力させるなど可能ですか?
リストビュー名前って何ですか?
> 出力された文字列をデータとしてまた扱うことって可能ですか?
可能なように出力すれば可能です。
これもあなたですか?
http://forums.belution.com/ja/vc/000/274/33s.shtml
・マルチポストは嫌われます。
・自分で試してみないで聞くだけの人は嫌われます。
調べたと言われていますがどの程度調べたのでしょう?
マニュアル・ヘルプを調べてよく分からなければ
次は質問掲示板の過去ログ、GOOGLEでの検索。
それでも的を得なければ似たようなことをやっているサンプルを探しましょう。
リストビューの値の取得の仕方やテキストの保存の仕方は
それぞれのところでは基本的なことです。
サンプルを探せば載っているはずです。
掲示板で質問して回答を待つよりも断然時間もかからないと思います。
時間の無駄遣いをしないという意味だけでも間違いなくあなたのためです。
これもあなたですか?
http://forums.belution.com/ja/vc/000/274/33s.shtml
は自分じゃありません。
# 一般的にマルチポストは嫌われるというコトは理解しておいた方がいいでしょう。
# http://www.mtakahashi.com/cgi.cgi?12256
はみとめます。
似たような文で疑うのはよしていただきたい。
> は自分じゃありません。
残念ながら、1度やると疑われてしまうのは致し方ないかと。
と、後ろ向きなことを言ったところで進展はしないので、
リンク先で掲示されている内容等を参考に調べてみて下さい。
テキストでの保存が成功していれば内容はテキストエディタで確認できるかと思います。
プログラムって署名のようなもんだから誰が書いたかすぐにわかるよ・・・
おれが参考にして書いて疑われてすいません。
http://forums.belution.com/ja/vc/000/274/33s.shtml
ツイート | ![]() |