![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
perlでCSVファィルの加工するプログラムを作ろうと思っております。
プログラム初心者な為どれから手を付ければ良いのか
判りません。
宜しければ サンプル等作っていただければありがたいです。
1.指定されたフォルダの中の
最新更新日付のファイルを読み込みむ
2.5分置きに可変CSVで出力されるデータを出力を
10分単位の固定CSVへ出力する
3.出力の際には以下の固定数字、時間、文字、数字等を入れ
加工した上で固定系CSVの出力をしたいです。
・固定の数字20450△△△,
・固定の数字 01,
・年月日時間 YYMMDDhhmm,
・固定数字 01,
・固定文字 TP,
・固定数字 01,
・固定文字 +か-,
元データが△△△19.2の場合は+を出力 -19.2の場合は-を出力
4カラム目を19.5 の場合△△195
・固定文字 TA,
・固定数字 01,
・固定文字 +か-,
元データが△△△12.2の場合は+を出力 -12.2の場合は-を出力
4カラム目を19.5 の場合△△195
入力のファイル名 20110301.csv
ファイルの中身
17549,2011/3/25,0:00:00,19.5,12.2
17550,2011/3/25,0:05:00,19.6,12.2
17551,2011/3/25,0:10:00,19.5,12.2
17552,2011/3/25,0:15:00,19.5,12.2
17553,2011/3/25,0:20:00,19.4,12.2
17554,2011/3/25,0:25:00,19.4,12.2
17555,2011/3/25,0:30:00,19.4,12.2
17556,2011/3/25,0:35:00,19.3,12.2
17557,2011/3/25,0:40:00,19.3,12.2
17558,2011/3/25,0:45:00,19.2,12.2
17559,2011/3/25,0:50:00,-19.2,12.2
↓
出力のファイル名 10_200203.dat
20450 , 01,201103250010,1,TP,1,+ 195,TA,1,+ 122
20450 , 01,201103250010,1,TP,1,+ 195,TA,1,+ 122
20450 , 01,201103250020,1,TP,1,+ 194,TA,1,+ 122
20450 , 01,201103250030,1,TP,1,+ 194,TA,1,+ 122
20450 , 01,201103250040,1,TP,1,+ 193,TA,1,+ 122
20450 , 01,201103250050,1,TP,1,+ 192,TA,1,+ 122
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
とりあえず、正しい出力結果がほしいです。
入力ファイルの情報に提示された条件を適用しても出力ファイルの情報にはならないと思います。
出力情報のおかしいところ
- 5分 → 10分 丸めるときは先優先であとのやつは削除でよいの?
- 19.2 とか12.2の小数点はどこへ消えたの?
- 00:50出力の+-の符号間違えてる?
- 19.5のとき符号いらないんじゃなかったの?
ここからは、コーディングの基本となりますが
こういった変換系処理の場合、
自分がプログラムになった気持ちで一つ一つ順番に変換してみてください。
どうすれば、出力結果ができあがるか、変換条件と自分した変換が一致しているのか
検証してみるとよいです。
自分の手操作で変換が出来るようになれば、あとは、その手操作の部分を列挙することで
プログラムができあがると思います。
イメージ的に必要そうなのは
1. 行単位の読み込み
2. カンマ区切りにするための split()
3. 丸めるための文字列置換(時分秒をhhn000)
4. 固定長出力用のsprintf()
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- その他(プログラミング・Web制作) プログラミング python pandas 固定長データの出力 2 2022/08/16 11:22
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
- Excel(エクセル) Excel ある複数列に数値を入力した際に、別の列に本日の日付を入力したいです 7 2023/03/01 23:31
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) VBAで出力したCSVファイルの先頭にカンマを挿入したい 5 2022/10/14 12:20
- Excel(エクセル) ①Excel シートに、「=」を入力したいのですが、shift+「ほ」を押すと、「_」と入力されます 2 2022/04/28 12:59
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/02/10 11:41
- Visual Basic(VBA) VBAで特定の場所にあるCSVファイル(複数)から特定場所を抜き出してExcelに転記したいです。 11 2023/05/23 16:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
awkスクリプトでダブルクォーテ...
-
ファイル出力の改行コードをLFに
-
エクセルVBAで素数だけを出力す...
-
DOSコマンドで、標準出力を出力...
-
重複するデータを抽出できる秀...
-
教えて!perlから.exeファイル...
-
テキストファイルから日本語部...
-
ドメインからIPアドレスあるい...
-
window.open でのファイル指定方法
-
VBAでCSVファイルの特定行を書...
-
ReadLineでの読み出し行を指定する
-
VBAで巨大なファイルの途中から...
-
ExcelをCSV書き出す場合のシー...
-
VBAでCSVファイルを途中行まで...
-
htaccessで特定のディレクトリ...
-
fopenでディレクトリ内の全ファ...
-
fgets で値が取得できない
-
エクセルVBA コードが同じでも...
-
配列の中に重複文字列があるか...
-
MATLABのm-fileについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
awkスクリプトでダブルクォーテ...
-
エクセルVBAで素数だけを出力す...
-
sprintfについて
-
教えて!perlから.exeファイル...
-
重複するデータを抽出できる秀...
-
log2の「正確な」計算方法
-
DOSコマンドで、標準出力を出力...
-
文字コードの変換(Shift-JISか...
-
perlでの文字列抽出
-
至急お願いします。C言語で.img...
-
ダイアモンド演算子<>に対するb...
-
コマンドプロンプトで行が見え...
-
Perlで着メロDLカウント
-
perlのpushについてです。
-
perlでcsvの出力について
-
CGIから外部コマンド実行時の標...
-
ドメインからIPアドレスあるい...
-
MySQLに画像を格納してperlで取...
-
perlでcsvの指定フィールドに書...
-
htmlから、ファイル、もしくはC...
おすすめ情報