C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: CSVファイルのデータ間引き


(過去ログ 25 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■11169 / inTopicNo.1)  CSVファイルのデータ間引き
  
□投稿者/ TP3 (1回)-(2007/12/08(Sat) 01:45:36)

分類:[VB6 以前] 

CSVで出力された等高線データから形状解析するマクロを組みましたが、
1024列768行のCSVファイルであるため、2007以前のExcelでは使えません。
VB等であらかじめ列の間引きを行ってから処理したいのですが、どのようにしたらよいでしょうか。
もし、何かよい方法があればご教授お願いします。

引用返信 編集キー/
■11171 / inTopicNo.2)  Re[1]: CSVファイルのデータ間引き
□投稿者/ れい (281回)-(2007/12/08(Sat) 06:37:35)
No11169 (TP3 さん) に返信
> もし、何かよい方法があればご教授お願いします。

何を期待してるのかぜんぜんわかりません。

そのまま間引いちゃっていいデータなら
普通にそのまま間引けばいいと思いますが。

自動化したいとか、
ドラッグドロップでやりたいとか、
そういったことですか?

それとも形状を補間しつつ間引きたいということですか?
なら普通はバイリニアを使うと思いますよ。

引用返信 編集キー/
■11176 / inTopicNo.3)  Re[2]: CSVファイルのデータ間引き
□投稿者/ mあ@反省中 (32回)-(2007/12/08(Sat) 12:57:51)
No11171 (れい さん) に返信
> ■No11169 (TP3 さん) に返信
>>もし、何かよい方法があればご教授お願いします。


> それとも形状を補間しつつ間引きたいということですか?
> なら普通はバイリニアを使うと思いますよ。
>

これやっちゃうと元のデータの信頼性が無くなってしまうから、
横4分割して、4つのシートに書き込むとか、4ブロックに
分けて1つのシートに縦に書き込むとかしたらいいんじゃない?


引用返信 編集キー/
■11179 / inTopicNo.4)  Re[3]: CSVファイルのデータ間引き
□投稿者/ れい (283回)-(2007/12/08(Sat) 19:38:21)
No11176 (mあ@反省中 さん) に返信
>>なら普通はバイリニアを使うと思いますよ。
> これやっちゃうと元のデータの信頼性が無くなってしまうから、

もちろんそうですが、
それは「分割」ですよね。
「間引き」したいらしいですよ。

引用返信 編集キー/
■11181 / inTopicNo.5)  Re[4]: CSVファイルのデータ間引き
□投稿者/ TP3 (2回)-(2007/12/08(Sat) 20:52:37)
2007/12/08(Sat) 20:53:21 編集(投稿者)
2007/12/08(Sat) 20:53:15 編集(投稿者)

レスありがとうございます。説明不足ですいません。
データを縦に輪切りにして解析をするので列方向のデータは多少減っても問題ないと思い、
列の単純間引きをして256*768のデータにしようと思った次第です。
本当はおっしゃるように分割した方がよいとは思うのですが。

filename$ = Application.GetOpenFilename("CSVファイル (*.csv),*.csv")
Workbooks.Open filename$


のようにダイアログを開きデータの書かれたcsvファイルを読み込んでるのですが、
このときに自動で間引きながら開きたいですがどのようにすればできるのでしょうか。
もちろんこのとき同時に補間できればよいのですが。
引用返信 編集キー/
■11185 / inTopicNo.6)  Re[5]: CSVファイルのデータ間引き
□投稿者/ れい (285回)-(2007/12/08(Sat) 22:33:14)
No11181 (TP3 さん) に返信
> このときに自動で間引きながら開きたいですがどのようにすればできるのでしょうか。

開くときに自動で間引きたいなら、
ファイルを開いて間引くようなプログラム組んで、
そのプログラムからExcelのワークシートのセルに
データを流せば良いと思いますよ。

形状解析のマクロを組めるなら、
簡単だと思います。

私はCSVを4つに分けるプログラムを組んだほうがいいのではないかと思いますが。
引用返信 編集キー/
■11194 / inTopicNo.7)  Re[6]: CSVファイルのデータ間引き
□投稿者/ TP3 (3回)-(2007/12/09(Sun) 17:31:11)
2007/12/09(Sun) 17:57:47 編集(投稿者)

皆様から見たら稚拙かもしれませんが、なんとか自力で解決できました。
間引くのではなくて、少しでも精度が出るように1024列を1〜4、5〜8といった形で平均をとり256列にしました。

Open FILENAME For Input As #intFF
i = 1: j = 1
Do Until EOF(1)

For k = 1 To 1024
Input #intFF, dat(i, k)
Next
For j = 1 To 256
dat2(i - 1, j - 1) = (dat(i, j * 4 - 3) + dat(i, j * 4 - 2) + dat(i, j * 4 - 1) + dat(i, j * 4)) / 4

Next

i = i + 1

Loop
Close #intFF

Range(Cells(1, 1), Cells(i - 1, 256)).Value = dat2

最初1セル1セル書き込んでましたが、計算だけしてまとめて書き込んだらすごく速くなりました。
書き込むのって時間かかるんですね。



解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -