HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0616
ぶっきー入力ボックスの引数を利用したコマンドプロンプト上の検索コマンド実行2解決


ぶっきー

リンク

2020/6/16(Tue) 23:27:33|NO.90788

はじめまして。
HTTPやVBAの経験しかないHSPコーディングの初心者で大変恐縮ですが、
皆様に教えていただきたいことがあり、お力添えのほどお願いいたします。

■やりたい事
HSPにてテキストボックスと検索ボタンを設け、ボタンを押下した際に、
テキストボックスに入力した文字列(以下"AAA")に合致するローカルフォルダ内(以下"BBB")のcsvの該当行をLogファイルに出力する、
という仕様を実現したいと考えています。

■実装方針
テキストボックスと検索ボタンのみHSPで作成し、
他は既にコマンド単体でCMD上検証が完了している以下文を利用しようと思います。
+++++++++++++
findstr "AAA" C:\BBB\*.csv" >C:\Users\BBB\Log.csv"

+++++++++++++ そのため、HSP上ではこのようになり、AAA部分が引数になるかと考えていました。 +++++++++++++
exec "cmd.exe /c findstr "AAA" C:\BBB\*.csv" >C:\Users\BBB\Log.csv"
+++++++++++++


■課題
そもそも上記構文がHSP上で正常に動作しておらず、他にも以下課題があり、
勉強不足もあり恐縮ですが、回避策を教えていただきたい次第です。
+++++++++++++
仝〆ボックスに投入した文字列(AAA)を利用したコマンドライン文を作成できない。
 →引数ではなく文字列として扱われてしまい、回避策を知りたいです。

exec構文上、呼び出すCMD用コマンド内にダブルコーテーションが入ってしまい、HSP上構文エラーとなる。
 →こちらも‘瑛佑鵬麋鮑を知りたいです。

exec構文にて、他にも呼び出したいコマンド文書があるのです。
 →&&構文でコマンドラインを複数つなげる方法以外に回避策があればうれしいです。
  ※本来は対象CSVがパスワード付きZIP化されているため、
   「解凍→検索→結果ログ出力→再圧縮」という処理を施したいのです。
+++++++++++++

何卒よろしくお願いいたします。



この記事に返信する


あらや

リンク

2020/6/17(Wed) 01:13:36|NO.90790

文字列の中でダブルクォーテーションを使いたい場合は『\"』と記述します。
同様にパス(\)を使う場合は『\\』と二重に記述しなければいけません。

文字列と変数の組み合わせなどは下記のソースを参考にしてください。


cmd = "検索キーワード"; // 検索文字列 file01 = "C:\\省略\\Search.csv"; // 検索するファイルの絶対パス(\は2重にする) file02 = "C:\\省略\\Log.csv"; // 保存するファイルの絶対パス(\に関しては同じ) exec "cmd.exe /c findstr \""+cmd+"\" "+file01+" > "+file02+""; // コマンドプロンプトで実行(文字列の中に"を使いたい場合は\"と記述する) /* 追記 文字列と変数を組み合わせる場合は "適当な文字列"+hensuu+"続きの文字列" このようにダブルクォーテーションを一旦閉じて、プラス記号に続き変数、 更に文字列を続ける場合は変数の後にプラス記号とダブルクォーテーションを組み合わせて使います。 */

おそらくこのソースをそのまま実行(検索文字やパスは書き換えてください)すれば
期待通りの結果になるかと。



ぶっきー

リンク

2020/6/17(Wed) 11:04:02|NO.90794

あらや様

夜遅い時間にも関わらずさっそく回答いただきありがとうございます。
\付与について基礎だとは思いますが、教えていただきとても助かりました。
またコーディングについても教えていただきありがとうございました、簡単な書き換え実行により実装できること確認できました。

いただいた回答を見てハッとしまして、他にもやりたかったことのイメージが急に湧いてきました。
しばらく現場から離れていたもので、基礎を取り戻しながら新しい言語に挑戦してみます。

以上、よろしくお願いいたします。



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.90788への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

ONION software Copyright 1997-2018(c) All rights reserved.