カンマ区切りの位置を一斉に変更するにはNo.02814
スナフキン さん 99/04/05 08:50
 
カンマ区切りCSVファイルを秀丸を使ってカンマの区切りの位置を一斉に変更するの
は、どのようなツールを使えばよいのでしょうか。いちいち各行を変更していたので
は、手間をとってしょうがありませんので、いっきに変更したいのですが、良い方法
があったら、教えてください。

[ ]
RE:02814 カンマ区切りの位置を一斉に変更No.02816
マイフェス さん 99/04/05 10:48
 
>カンマ区切りCSVファイルを秀丸を使ってカンマの区切りの位置を一斉に変更する

その辺のことは専門職のEXCELを使った方が楽かもしれません。
EXCELで整形した後のデータの変更はエディタでやるとか。

具体的な例を挙げて戴けると、皆さんも助言しやすいかと思います。

[ ]
RE:02816 カンマ区切りの位置を一斉に変更No.02818
スナフキン さん 99/04/05 13:13
 
>>カンマ区切りCSVファイルを秀丸を使ってカンマの区切りの位置を一斉に変更する
>
>その辺のことは専門職のEXCELを使った方が楽かもしれません。
>EXCELで整形した後のデータの変更はエディタでやるとか。
>
>具体的な例を挙げて戴けると、皆さんも助言しやすいかと思います。

csvファイルをEXCEL形式(.xls)にして秀丸でファイルを開いてみましたが、文字化
けしてしまいました。
なぜでしょう。
できれば、csvファイルの時に秀丸でひらいて、カンマの位置をすべての行につい
て、一文字もしくは二文字一斉
にずらした後で、csvファイルに保存した後に、EXCEL形式に保存したいのですが、
一斉にずらす合理的な方法をもし、わかっている人がいらっしゃったら、教えていた
だけませんでしょうか・・・・。

[ ]
RE:02814 カンマ区切りの位置を一斉に変更No.02819
りかぽん さん 99/04/05 13:36
 
>カンマ区切りCSVファイルを秀丸を使ってカンマの区切りの位置を一斉に変更するの
>は、どのようなツールを使えばよいのでしょうか。いちいち各行を変更していたので
>は、手間をとってしょうがありませんので、いっきに変更したいのですが、良い方法
>があったら、教えてください。

「カンマ区切りの位置をいっせいに変更する」とは、いったいどのような行為なので
しょうか。

1 カンマ区切りの配置を、フィールド定義を変えるという意味で変更する
"abc","123","XYZ"  -> "abc","123XYZ"

2 csvファイルとしての意味を変化させないまま、テキストとして整形する
"abc","123","XYZ"
"a","1234","AB"
   を
"abc","123", "XYZ"
"a",  "1234","AB"

その他いろいろあるでしょう。

なんにせよ、ツールとしては秀丸マクロということになるでしょうね。

[ ]
RE:02818 カンマ区切りの位置を一斉に変更No.02820
マイフェス さん 99/04/05 15:23
 
>csvファイルをEXCEL形式(.xls)にして秀丸でファイルを開いてみましたが、文字化
>けしてしまいました。
>なぜでしょう。

EXCELで保存する時もCSVで保存してください。するとテキストですから秀丸
でも編集可能です。

>できれば、csvファイルの時に秀丸でひらいて、カンマの位置をすべての行につい
>て、一文字もしくは二文字一斉
>にずらした後で、csvファイルに保存した後に、EXCEL形式に保存したいのですが、

一応、こういうマクロを実行すればカンマの前にスペースを挿入することはできます。
2文字ずらすのなら insert " "の部分を"  "と2文字のスペースにしてください。
これでいいのでしょうか?

#findcnt = 0;
gofiletop;
while(1){
searchdown "\,";
if( result ){
insert " ";
#findcnt = #findcnt + 1;
}else{
break;
}
}

if( #findcnt == 0 )
message "カンマが1つもありませんでした。";
else
message "カンマを"+str(#findcnt)+"個処理しました";
endmacro;

[ ]
RE:02820 カンマ区切りの位置を一斉に変更No.02821
スナフキン さん 99/04/05 15:39
 
>>csvファイルをEXCEL形式(.xls)にして秀丸でファイルを開いてみましたが、文字化
>>けしてしまいました。
>>なぜでしょう。
>
>EXCELで保存する時もCSVで保存してください。するとテキストですから秀丸
>でも編集可能です。
>
>>できれば、csvファイルの時に秀丸でひらいて、カンマの位置をすべての行につい
>>て、一文字もしくは二文字一斉
>>にずらした後で、csvファイルに保存した後に、EXCEL形式に保存したいのですが、
>
>一応、こういうマクロを実行すればカンマの前にスペースを挿入することはできます。
>2文字ずらすのなら insert " "の部分を"  "と2文字のスペースにしてください。
>これでいいのでしょうか?
>
>#findcnt = 0;
>gofiletop;
>while(1){
>searchdown "\,";
>if( result ){
>insert " ";
>#findcnt = #findcnt + 1;
>}else{
>break;
>}
>}
>
>if( #findcnt == 0 )
>message "カンマが1つもありませんでした。";
>else
>message "カンマを"+str(#findcnt)+"個処理しました";
>endmacro;

どうもありがとうございました。
大変に参考になりました。

[ ]
RE:02821 カンマ区切りの位置を一斉に変更No.02822
番頭++ さん 99/04/05 16:37
 
>>>できれば、csvファイルの時に秀丸でひらいて、カンマの位置をすべての行につい
>>>て、一文字もしくは二文字一斉
>>>にずらした後で、csvファイルに保存した後に、EXCEL形式に保存したいのです

それなら Excel のセルに、
=".."&A1&",," と書けば済むような気がします。
A1 はセル名で、".." と A1 の内容と ",," を連結しますが ???
".." ",," はスペースの意味です。

どはずれの勘違いかも ...

[ ]