VBScriptについて必死に話し合うスレ [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
___ / \ / ヽ | ● | /\ ノ (――> (__  ̄ ̄> \ / / ̄ ̄二) | | (___/ / \ / 〜〜〜〜〜〜〜〜〜〜〜 文字列で渡して受け取り側でスプリットしちゃえばいいのか >>782 旦那のオチンチンが結構大きいので口に入れるのは辛いですね ピラフのオチンチンは爪楊枝サイズですが柔らかいので歯の掃除に使えません。 おチンチンびろーん ∩___∩ | ノ ヽ/⌒) /⌒) (゚) (゚) | .| / / ( _●_) ミ/ .( ヽ |∪| / \ ヽノ / / / | _つ / | /UJ\ \ | / ) ) ∪ ( \ \_) 問題.次の式の結果として正しいのはどれでしょう (1) 5 / 4 * 3 (2) 5 \ 4 * 3 1.(1)が3.75、(2)が3.75 2.(1)が3.75、(2)が3 3.(1)が3、(2)が3 4.(1)が3.75、(2)が0 まじか?ピラフにおちんちんついてたのか!? 5ch始まって以来の衝撃ニュースやんけ!!! マシュマロを食べるたびにピラフのちんちんを思い出す呪いをかけた ___ /::::::::::::::::\ /:::::─三三─\ /:::::::::<○>三<○>.\ /⌒)⌒)⌒.:::::::::: (__人__) :::::: \ /⌒)⌒)⌒) | / / /.. ` ⌒´ | (⌒)/ / / /,, | :::::::::::(⌒) / ゝ ::::::. .........._ | ノ \ /_ /´ ヽ ヽ / ヽ / /0 .', | | {o ::} ': / ヽ、___,.,/ >>103 ところでさ「君の名は」って映画観た? ピラフいちゃもんつけてやろうと思って観たけど 大号泣だったわ、あんな悲しい話だったとは…… >>105 観たがいいよ!YouTubeとかAmazonで400円で観れるから >>114 元祖、君の名はの岸恵子は85歳だけどね vbsなんていう、完全終了してる言語になんでしがみついてんの? 普通にJavaScriptかPowerShellだよね今なら なんか放っとけないんだよね VBScriptにはピラフがいないといけないんじゃないかって 気がつくとVBScriptのことばかり考えてる >>123 Node.js使ったことある?あれマジヤバくない?なんていうかマジヤバくない? 超速いんですけど、メモリ効率もすごいし、zip解凍するだけで使えるハイパーポータビリティだし あれはねヤバイね ピラフが居なくなったらMSもVBScriptから撤退するだろうな 仕事で初めて使うことになった プログラミングとかの経験はほぼない CSVファイルをデータベースにインサートをするスクリプト作ることになったんだけど、どんなコードを書くのか想像すら付かない コードも暗号にしか見えないし出来るのか… 割とガチでJavaScript使った方が良いと思う >>128 だけど とりあえず少し触ってデータベースへアクセスする部分は書けた(全部で5行くらいだけど)けどCSVをデータベースにインサートする部分が全く分からん このケースってそんなにないのかな? ネット見ても似たサンプルが見当たらない… どういう考え方というか進め方をすればいい? >>132 やり方としてはCSVからSQL(insert文)作って実行するだけじゃない >>133 ありがとう でも全然分からん CSVファイルの中身を一度抽出する必要がある? それともファイルごとDBぶん投げるの? あと、インサート文を書くにしてもVALUE部分はどう書くの? >>134 csvファイルの中身を抽出してカラム毎に分解してinsert文を作る。 あとはピラフ大王に教えてもらえ >>135 ありがとう やっぱ中身の分解は必要なんだね もう少し調べてみる ファイルの中身を列ごとに取得 SQL文作成 データベース接続 SQL投げる って流れで良いかな? 質問ばっかりで申し訳ないんだけど、日付でファイルを指定したりも出来る? >>136 データベースエンジンによってはcsvをインポートするコマンドがあったりする。 SQLServerのbcpコマンドとか。 >>138 そうなんだね ポスグレ使ってるから調べてみる 日付はCSVに付加させてて、今日の日付のファイルのCSVを読み込むって事をやりたい 行の取得が一般的なの?列の取得ってどうやるんだ? >>139 scripting.filesystemobjectをcreateobjextして opentextfileで開いてreadlineするか readallで全部読んでから、vbcrlfでSplitしてFor eachで処理する 読んだ一行は、カンマでSplitして文字列はダブルクォーテーションで囲んだりしながらvalue部分作成 あとはあらかじめ用意したSQLにくっつけて実行 >>140 ありがとう 呪文にしか見えん… ちょっと調べながら解読してみる… >>142 スペル間違ったcreateobjectね ____/ ̄ ̄ / │ ̄\__ ゴゴゴ・・・ / .. 、 ,_  ̄\_/ ̄ ̄\/ ̄ ゴゴゴゴゴゴ・・・ ___/ ̄へ√⌒l⌒´ ̄ ̄\_ ´ / \ _ ./ ̄ ̄ ̄\ / __ `ソ/ ─ ─ \/ ̄/ \/゚ (●)。 (●) \/ rへ,ノ ・・・・・・ __>-へ| i (__人__) |ノ :.\_ .:/从へ、.゚` ⌒´o.ノ从rーヘ_ _::ノ :ノ`⌒Y⌒´:: \ .::┘ :│ ゚ >>142 です >>140 の人丁寧に教えてくれたけど全然分からなかった…すまん… CSVの読み込みにCOPYが使えるってのを見つけて試そうと思ったんだけどファイルの先頭3行に必要ない行があるからskipを使ってコード書いたけど実行すると”skip”付近で記述がおかしいみたいなエラーが出る これ何かおかしい? Sql = "COPY datatest FROM 'C:\\FTP_Test\\LOG01\\00006401' skip 3; " ピラフの雰囲気だとなんでもエクセルとVBA使ってそうだけど >>152 ピラフ貧乏だからエクセル持ってないの! >>151 ポストグレスの重要機密文書見たけどskipは載ってなかったよ skipオプションは使えないんじゃないかな https://www.postgresql.jp/document/9.3/html/sql-copy.html テキストエディタでサクッちゃいなよ やっちゃえエディタ >>154 skipないのか… >>140 の人がレスくれた内容がこの辺かな? http://bayashita.com/p/entry/show/85 これを 読んだ一行は、カンマでSplitして文字列はダブルクォーテーションで囲んだりしながらvalue部分作成 あとはあらかじめ用意したSQLにくっつけて実行 って全然イメージ付かない… 1行ずつよんだ結果は上のサイトで言う所のstrLineに入ってるって理解で良いのかな? この変数の中身をどう分解すれば良いんだ? 聞いてばっかりでごめん >>155 strLineには1行ずつ読んだ結果が入ってるよ Split関数を使ってカンマで切って配列に変換すればいいよ Dim values values = Split(strLine, ",") >>156 ありがとう CSVの列の数とテーブルの列の数が同じなら下の書き方で上手くインサートできる? INSERT INTO test (aaa,bbb,ccc) VALUES (values) >>157 数も順番も同じなら、テーブル名も省略できるよ “今日の日付のファイル”を読み出すって場合はどういうコードになるの? 日付を付加するとかはあるけど探して読み出すっていうのが見つけられなかった >>159 どこに日付が有るの? ファイル名なのか、作成日付なのか変更日付なのか ただ日付と言われても誰も解らないよ >>160 ごめん 読みだしたいファイルに日付が付加されてるんだけど(20171217みたいな感じ)、今日の日時が付いてるファイルのみ判別して読み出すっていうのがやりたい >>162 日付はファイルを作成した日時が付加されてる 今はパスに対象のファイルを指定してるから読み出したり出来てるんだけど、日付の指定で読み出し対象を変えたいなと思ったんだ >>162 パス名に一定の規則に基づいた日付がついていて、かつその日付を信頼して制御してOKなら、InStrとかReplaceを使ってパスを検索すれば良い 実際のファイル作成日や最終更新日を考慮しなければならないなら、FileSystemObjectとかを使ってFileのプロパティを調べて検索するべし >>162 ワイルドカードとかの指定は出来ないので ファイル名を読み出して判定してからオープンする必要がある sdate=replace(date,"/","") set ofo = fso.GetFolder(folder) とかでフォルダー取得して For each ofi in ofo.files でファイル一つずつ読み出し if instr(ofi.name,sdate) <> 0 then ファイル読み出し、DB書き込み処理 end if こんな感じかな / ̄ ̄\ / \ |::::::: : | , ノ. . |::::::::::::: | 'ヽ ( |::::::::::::: | ) ) . |::::::::::::::: } ` ノ . ヽ____ } ( ,ノ'  ̄ r'ニニヽ._\. ノ ;;. r':ニニ:_`ー三`:く._ [l、. /: : : : : : :`,ニ、: :_:_;> /,ィつ . /: : : : : : : : / : : : ヽ\ ,∠∠Z'_つ | : :.:.:.:.:.: . :/: : : : : : l : ヽ. / .r─-'-っ . |:.:.:.:.:.:.:.:.:.,' ''" ̄: : :l: : : :l / ):::厂 ´ |:.:.:.:.::.:.:.:l -─-: : /:_:_:_:_l / ̄`Y´ . |:.:.::.:.::.::l.__: : : :/::: : : : :l/⌒ヽ: :〉 |::.:::.::.::l: : : : : : /:::: : : : : |: : : : ゙/ >>165 >>162 です 見ながらやってみたんだけどわからなかった・・・ 日付を判定する元にしてるのがsdateかなと思って中身見ようとCall MsgBox(sdate)ってやっても今日の日付が表示されないのはsdateには今日の日時が入ってないからなのかな? あと、if instr(ofi.name,sdate) <> 0 then の文のinstrの意味って検索が一致した文字の位置を返すって役割って理解であってるかな? if instr(ofi.name,sdate) <> 0 then この文の意味がよく分からなくて・・・ 見ながら書いたコードなんだけどもう少しっぽいのに分からない・・・ Dim objFileSys Dim objFolder Dim objFile Dim sdate Dim a Set objFileSys = CreateObject("Scripting.FileSystemObject") sdate = Replace(Data,"/","") Set objFolder = objFileSys.GetFolder("c:\Filedate") For Each objFile In objFolder.Files If instr(objFile.Name,sdate) Next >>170 dataじゃなくてdateね Dim objFileSys Dim objFolder Dim objFile Dim sdate Dim a Set objFileSys = CreateObject("Scripting.FileSystemObject") sdate = Replace(Date,"/","") Set objFolder = objFileSys.GetFolder("c:\Filedate") For Each objFile In objFolder.Files If instr(objFile.Name,sdate) <> 0 then end if Next >>171 ありがとう 綴りを間違えてた… 本当に馬鹿な質問で申し訳ないんだけど If instr(objFile.Name,sdate) <> 0 then で今日と判別されたものはどこに入ってるの? 例えば今日の日付のファイルをデータベースに処理するとして、ここで判別された物がファイルのパスにしたり出来るのかなって思ってるんだけど理解間違ってるかな… 確認しようと中身をメッセージボックスに出してみようと思ったんだけど( )の中身はなんて指定すれば出せるかな Set objFileSys = CreateObject("Scripting.FileSystemObject") sdate = Replace(Date,"/","") Set objFolder = objFileSys.GetFolder("c:\Filedate") For Each objFile In objFolder.Files If instr(objFile.Name,sdate) <> 0 then Call MsgBox() end if Next >>173 ありがとう 途中でメッセージボックス出してファイルの名前だったり中身のデータも取得できた みんな丁寧に教えてくれてほんとにありがとう $folder = "c:\Filedate" # yyyymmdd $today = Get-Date -Format "yyyyMMdd" # 日付を含んだ $filter = "*" + $today + "*" $file = ls -File -Path $folder -Filter $filter # 読み込み Get-Content $file PowerShell で書いた。 PowerShell, PowerShell_ise で実行して 修正 Get-Content では、相対パスでは、作業フォルダの場所次第で、動かないことがあるから、 絶対パスにしておいた方が無難 ># 読み込み >Get-Content $file # 読み込み Get-Content $file.FullName 文字列 "平成29年12月18日" をDate型に変換したいのですがどうやればいいですか 教えてくださいお願いします "平成29年12月32日" のように不適切な日付の場合はアラートを出したいです よろしく教えてくださいよろしくおねがいします >>140-141 CSVの読み込み時に一律で Split(Line, ",") するのは勧めない。CSVの仕様的に正しくない。 「"」でくくられて「,」を持つフィールドを正しく取得できない。 良い機会だから、トークン切り出しクラスを実装してみたら?スキル上がるよ。 >>165 これくらい単純な事には、Execオブジェクトに dir /a-d /b させて StdOut をもらった方が楽。 ワイルドカードが使えるし。 >>179 「昭和80年」のような場合はどうすんのよ? >>180 そんなクラス作るくらいならADOでいいよ execとかは楽かもしれないけど美しくないな >>182 CSVをmdbあたりに突っ込んでから再度取得する感じ? >>183 テキストクラスで直だよ 読み出しはDBと同等に出来る 書き込みできないけどね >>181 NGになって欲しい なぜならば平成しか来ない想定だから 間違えた。 >>185 は >>184 ね。 ADO にそんなのあんの? >>187 テキストドライバがあるよ ODBCドライバかOLEドライバかACEなんとかで提供されてるはず VBSは正規表現が使えるから、文字列から数字をパターンマッチで取り出して、 後は、数の範囲を確認する。 西暦や和暦では月は1〜12であることはわかるね。各月の日数は月によって異なる。 カレンダー見ればだいたいわかるね。ただし、うるう年では2月は29日になる。うるう年の判定方法は検索して。 年号はデータを用意するしかない。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる