VBSで便利なプログラムを作れスレ 2

1デフォルトの名無しさん
垢版 |
2018/10/13(土) 22:56:48.61ID:X8llOrQa
素人丸出しお粗末で遅くてもいいので
いますぐ使えるちょっぴり便利プログラムを作れ
(例○○を自動処理してくれるプログラム)

前スレ
VBSで便利なプログラムを作れスレ
https://mevius.5ch.net/test/read.cgi/tech/1170492587/
703ピッコロ ◆YAZTByPXwc6o
垢版 |
2019/08/07(水) 01:20:50.23ID:uspboHJw
"a"b
このような値をどうするかという課題がある
囲まれてるとみなすか否か
CSVは斯くも難しい
2019/08/07(水) 04:52:07.16ID:+RwF1EPD
なるほど、ソースを貼るとブロックされることがあるのか
せっかく作ってやったのにw
2019/08/07(水) 04:58:54.16ID:+RwF1EPD
Dim Tst(1)
Tst(0) = ”a1,””b11,””””b12””””,””””b13””””””,””c1”””
Tst(1) = ”a2,””b21,””””b22””””,””””b23””””””,””c2”””

Dim Src, Var, Qot, Val, Cols(), Col
For Each Src In Tst
 Qot = False
 ReDim Cols(0)
 Col = 0
 For Each Var In Split(Src, ”,”)
  If Qot Then Val = Val & ”,” & Var Else Val = Var End If
  If (Len(Var) − Len(Replace(Var, ””””, ””))) Mod 2 Then Qot = Not Qot
  If Not Qot Then
   If Col > 0 Then ReDim Preserve Cols(Col)
   Cols(Col) = Replace(Replace(Replace(Replace(Chr(0) & Val & Chr(0), Chr(0) & ””””, ””), ”””” & Chr(0), ””), Chr(0), ””), ””””””, ””””)
   Col = Col + 1
  End If
 Next
 MsgBox Join(Cols, Chr(9))
Next
2019/08/07(水) 05:19:56.25ID:+RwF1EPD
全部全角にしたら行けたが、半角に直すの面倒だね
FileSystemObjctが面倒で、配列にテストソース入れたけど、そこは自分で

今気付いたんだけど改行交じりに対応してないな
If Not Qot Then
 Qot = False
 ReDim Cols(0)
 Col = 0
End If
こうすればいいのかなと思いつつ、面倒なのでテストはしない
およびMsgBoxのとこにも Not Qot で行が終わったかどうか判定すればいいのかな
(QotがTrueの間、引用符が閉じてないという意味)(絶対か?w)

ちなみにエスケープに使ってるChr(0)は、ファイルに含まれてるとテキストファイルとして読めなかったと思う(たしか)
なので、絶対被らないとしていいと思う

(そもそも必要なものを入れさせないペテン保守系がガンなんだけどね)
2019/08/07(水) 05:29:13.29ID:+RwF1EPD
前の行のQotリセットに依存するなら、
If Not Qot Then
 Qot = False ←これ無意味だったね
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況