50秒ごとに刻まれているcsvデータがあります。
↓↓↓
00:00:00
00:00:50
00:01:40
00:02:30
00:03:20
00:04:10
00:06:00
…(23:59になるまで続いています)
ここで現在、
①
各時間0分.30分になるとリストに書き出す処理を作成しており、分を30で割ったときの余りが0のときリストに書き出すという処理を行なっているのですが、この場合に上のデータだと
00:00:00
00:00:50
のデータが抽出されてしまいます。
取り出したいデータは各分1行としたいのです。
ですので、余りで判定する処理より画期的な処理がもしあればご享受していただきたいです。
②
①のプログラムの応用なのですが、50秒ごとに刻まれているデータだとどうしても存在しない分が出てきてしまいます。(上のデータだと00:05)
ここで、0分.30分のデータが存在しなかった場合に0分.30分次の行のデータ(1分.31分)を書き出す処理を作成するにはどのようなプログラムがあるでしょうか。
参考例等をご享受していただけると幸いです。
身勝手な質問ですみません。
どうしても閃かないので、よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
あなたの”分を30で割ったときの余りが0のときリストに書き出す”処理をそのまま生かして行う方法です。
①リストに書き出すとき、そのデータの時分を記憶する。
②次に読み込んだデータが書き出し対象になった時、そのデータの時分が、①で記憶したデータの時分と同じならそのデータはスキップする。
あなたの作成した処理に上記の①②を組み込んではいかがでしょうか。
No.7
- 回答日時:
CSVファイルに改行で入っているデータなら、基本同じ行数間隔で必要なデータが得られる物ではないのでしょうか?
そして、
>ここで、0分.30分のデータが存在しなかった場合に0分.30分次の行のデータ(1分.31分)を書き出す処理を作成するには
とは、イレギュラーな行数間隔をもたらす物であるのなら補正をかければ宜しいのでは?
No.6
- 回答日時:
開始がぴったり00秒からという前提だと実に簡単で、秒がゼロであるという判定条件を追加するだけです。
30分は1800秒だから50で割り切れる、つまり30分の時も00秒になるから同じ条件が通用します。ただしタイマのずれで開始が00:00:01などになった場合にも備えろってことになると、この方法はうまくいきませんが。そういったズレ対策や記録落ちが起きた場合の対策としては、フラグを2個(00分出力済みフラグと30分出力済みフラグ)用意するのが簡単だと思います。概念としては以下のような感じです。これだと00分のデータが漏れていても、29:59までに来れば書き出されます。同様に30分のデータは59:59まで待てます。
'ループの外で初期化
flag00 = False
flag30 = False
If Not flag00 And 時刻の分<=29 Then
データを書き出す処理
flag00 = True
flag30 = False
EndIf
If Not flag30 And 時刻の分>=30 Then
データを書き出す処理
flag30 = True
flag00 = False
EndIf
No.5
- 回答日時:
こんばんは
No4様も指摘なさっていらっしゃいますが、50秒毎なら5分間に6回のデータがあるはずなので、データが存在しない「分」は無いはずです。
>各時間0分.30分になるとリストに書き出す処理を作成しており~~
>00:00:00
>00:00:50
>のデータが抽出されてしまいます。
30分毎のデータを抽出するのではないのですか?
(1分毎を抽出したいのか?)
よくわかりませんが、以下のような考え方で処理すれば抽出したい時間帯での最初のデータを選べるはずと思います。
(仮に、データが飛んでいてもそのままで有効なはずです)
※ データは必ず昇順になっていると仮定しています。
1)初期値として、チェックタイムを0分にセット
2)チェックタイムが抽出の終了時間より小さく、データが存在する間は3)~6)の処理をループ
3)次のデータを取得
4)データの時間がチェックタイム未満なら次のデータへスキップ
5)チェックタイム以上なら、そのデータを抽出し、
チェックタイムを30分後(必要な時間後)に再セットする
7)処理終了
>具体的なプログラムをご享受していただけると幸いです…。
不明な情報が多過ぎて、こちらで具体的なブログラムを記述すると、やたらと冗長になるばかりだと思います。(結果的に無駄な部分が多く、作成手間がかかるだけ)
質問者様は、その不明情報をご存じの筈ですので、上記のままをコード化すれば簡単なものですむものと思います。
No.4
- 回答日時:
>①のプログラムの応用なのですが、50秒ごとに刻まれているデータだとどうしても存在しない分が出てきてしまいます。
(上のデータだと00:05)これはないですね。
00:04:10
00:06:00
となっていますが
00:04:10
00:05:00
のはずです。
No.3
- 回答日時:
No2です。
>大変厚かましいお願いなのですが、もし可能であれば簡単なものでいいので具体的なプログラムをご享受していただけると幸いです…。
あなたが作成したプログラムを提示してください。
それに追加します。
No.1
- 回答日時:
(1)先頭行を書き出す。
(2)書き出した時刻+30分→次の時刻
(3)次の時刻以上の時書き出す。
(4)次の時刻に30分加算する。
(5)(3)へ
みたいな感じで考えればよろしいかと。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux サーバー間のデータコピー(データ形式とデーターフォーマットの変換あり。一定間隔で処理) 2 2023/08/22 22:15
- Excel(エクセル) Excelマクロの差分抽出のコードを教えていただきたいです。 2 2023/03/14 11:40
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Visual Basic(VBA) VBA 毎日取得するデータを順番に反映していく方法 6 2023/08/26 16:22
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- 事務・総務 帳票類やデータがありません。法人成り。 解体業の会社で現場作業員 兼 事務員として勤めているのですが 3 2023/06/02 13:27
- Excel(エクセル) エクセル 任意の列数で分割する方法 3 2022/07/31 14:58
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
教えて下さい
-
配列でデータが入っている要素...
-
【エクセル】測定時間がバラバ...
-
S9タイプからXタイプにデータ...
-
メモ帳(テキストデータ)をExc...
-
この行は既に別のテーブルに属...
-
VBにおいてフォーム間の変数の...
-
VBA 空白セルを削除ではない方...
-
大学のゼミのレポートがムカつ...
-
エクセルで2つの時系列のデー...
-
[C言語] コメント文字列を無視...
-
VBAを使ってOutlookメール本文...
-
ユーザーフォームのテキストボ...
-
シーケンサにパソコンからアク...
-
C# でDataTableの更新を高速化...
-
EXCELVBAでSQLserverからデータ...
-
Excelのマクロでワードのテキス...
-
0が含まれる幾何平均が「#NUM!」
-
WEBサイトの構築。表示データと...
-
CString型の文字列連結について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えて下さい
-
【エクセル】測定時間がバラバ...
-
配列でデータが入っている要素...
-
多量のSUMIF式を軽くしたい
-
エクセルで2つの時系列のデー...
-
Excelのマクロでワードのテキス...
-
メモ帳(テキストデータ)をExc...
-
VBA 空白セルを削除ではない方...
-
VBAを使ってOutlookメール本文...
-
Accessで該当データにフラグを...
-
合計3TBのデータのハッシュ値を...
-
シーケンサにパソコンからアク...
-
S9タイプからXタイプにデータ...
-
カンマからスラッシュに
-
VBAでシートからコンボボックス...
-
VBA 毎日取得するデータを順番...
-
ビットシフトについて
-
ユーザーフォームのテキストボ...
-
EXCELVBAでSQLserverからデータ...
-
特定のデータの抽出方法を教え...
おすすめ情報
みなさん回答ありがとうございます。
大変厚かましいお願いなのですが、もし可能であれば簡単なものでいいので具体的なプログラムをご享受していただけると幸いです…。
申し訳ありませんが、よろしくお願い致します。