リストビューを

解決


いちご  2004-10-24 10:58:56  No: 54859

現在ダイアログベースでアプリケーションを作成してます。
リストビューに表示されている値をテキスト形式で保存したいのですが
どのようにしたらいいかわかりません。
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\");
  }
  
}
現在このようにしているのですができません。
どのようにして取得を行い、保存をすればいいのかわかりません。
アドバイスをお願いします。


いちご  2004-10-24 11:00:24  No: 54860

名前をつけて保存を表示させその
あとにリストビューに表示されているすべてのデータを保存
する流れが行いたいです。


通りすがり  2004-10-24 14:52:28  No: 54861

リストの内容を一発保存する関数などないので、自分で書き込むソースを
書く必要があります。

1行だけの場合は以下の様になります。(検証してません。
おかしい所は直してください。カラムは保存していません。)

int count = m_list5.GetItemCount() ;
for(i = 0 ; i < count ; i++ )
{
    fount.WriteString( m_list5.GetItemText( i , 0 ) ) ;
    fount.WriteString("\r\n") ;
}


いちご  2004-10-24 19:46:02  No: 54862

とおりすがりさまありがとうございます。
カラムを保存するときは
fount.WriteString( m_list5.GetItemText( i , 0 ) ) ;

fount.WriteString( m_list5.GetItemText( i , randamu[i] ) ) ;
このように変更してみたのがだめでした。
randamu[i]のあたいはリストビューに表示させてるものなのですが
この書き方ではだめなのですか?


瀬戸っぷ  2004-10-24 20:54:15  No: 54863

> カラムを保存するときは
> 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


通りすがり  2004-10-25 10:03:40  No: 54864

瀬戸っぷさんも書かれている通り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) ;

カラム取得ならこんなんか?


いちご  2004-10-25 12:59:37  No: 54865

ありがとうございます。
名前をつけて保存したデータを
リストビュー名前を選択して入力させるなど可能ですか?
えっと調べてもわからなかったのですが
出力された文字列をデータとしてまた扱うことって可能ですか?


YuO  2004-10-25 20:01:08  No: 54866

> 名前をつけて保存したデータを
> リストビュー名前を選択して入力させるなど可能ですか?

リストビュー名前って何ですか?

> 出力された文字列をデータとしてまた扱うことって可能ですか?

可能なように出力すれば可能です。


とおリス狩り  2004-10-25 20:23:54  No: 54867

これもあなたですか?
http://forums.belution.com/ja/vc/000/274/33s.shtml

・マルチポストは嫌われます。
・自分で試してみないで聞くだけの人は嫌われます。

調べたと言われていますがどの程度調べたのでしょう?
マニュアル・ヘルプを調べてよく分からなければ
次は質問掲示板の過去ログ、GOOGLEでの検索。
それでも的を得なければ似たようなことをやっているサンプルを探しましょう。
リストビューの値の取得の仕方やテキストの保存の仕方は
それぞれのところでは基本的なことです。
サンプルを探せば載っているはずです。

掲示板で質問して回答を待つよりも断然時間もかからないと思います。
時間の無駄遣いをしないという意味だけでも間違いなくあなたのためです。


いちご  2004-10-25 21:49:35  No: 54868

これもあなたですか?
http://forums.belution.com/ja/vc/000/274/33s.shtml
は自分じゃありません。
# 一般的にマルチポストは嫌われるというコトは理解しておいた方がいいでしょう。
http://www.mtakahashi.com/cgi.cgi?12256
はみとめます。
似たような文で疑うのはよしていただきたい。


瀬戸っぷ  2004-10-26 07:14:08  No: 54869

> は自分じゃありません。

残念ながら、1度やると疑われてしまうのは致し方ないかと。
と、後ろ向きなことを言ったところで進展はしないので、
リンク先で掲示されている内容等を参考に調べてみて下さい。

テキストでの保存が成功していれば内容はテキストエディタで確認できるかと思います。


...  2004-10-27 02:14:42  No: 54870

プログラムって署名のようなもんだから誰が書いたかすぐにわかるよ・・・


まさき  2004-10-27 13:44:47  No: 54871

おれが参考にして書いて疑われてすいません。
http://forums.belution.com/ja/vc/000/274/33s.shtml


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加