![Компьютерный форум OSzone.net](images/oszone.net.print.gif) |
|
666egor666 |
15-05-2015 09:28 2507596 |
vb 6. Передача строковой переменной в shell
Задачка такая: в бейсике в текстбокс1 пишу путь к текстовому файлу такого формата: "c:\path\podschet.txt", далее я объявляю строковую переменную "а" и присваиваю ей значение из текстбокс1. Т.е. в переменной "а" у меня хранится путь. Далее мне нужно записать в этот podschet.txt просто единицу, с помощью cmd. Через shell в бейсике это делается просто: shell "cmd.exe /c echo 1 > c:\path\podschet.txt". Задача заключается в том, чтобы в в команде shell не писать сам путь, а использовать переменную "а". Таким образом код должен выглядеть примерно так: shell "cmd.exe /c echo 1 > %а%". Понимаю, что первым делом возникает вопрос: а зачем тут командная строка? Ведь можно операцию записи единицы осуществить в том же бейсике. Отвечаю: это просто пример, самый простой и понятный. Для моей более сложной задачи этот пример послужит шаблоном. И ещё небольшое дополнение: мне не подходит решение, заключающееся в сохранении пути в текстовый файл через бейсик, а потом считывание этого пути командной строкой, т.е. некий буфер обмена (текстовый файл).
|
Цитата:
Цитата 666egor666
в бейсике в текстбокс1 пишу путь к текстовому файлу такого формата: "c:\path\podschet.txt", далее я объявляю строковую переменную "а" и присваиваю ей значение из текстбокс1. Т.е. в переменной "а" у меня хранится путь. »
|
Где Ваш код, где Ваш проект?
Цитата:
Цитата 666egor666
Далее мне нужно записать в этот podschet.txt просто единицу, с помощью cmd. »
|
Зачем так?
Цитата:
Цитата 666egor666
Задача заключается в том, чтобы в в команде shell не писать сам путь, а использовать переменную "а". Таким образом код должен выглядеть примерно так: shell "cmd.exe /c echo 1 > %а%". »
|
Код никак не может так выглядеть, поскольку переменные в приложении никоим образом не связаны с переменными окружения командного процессора.
Цитата:
Цитата 666egor666
Понимаю, что первым делом возникает вопрос: а зачем тут командная строка? Ведь можно операцию записи единицы осуществить в том же бейсике. Отвечаю: это просто пример, самый простой и понятный. Для моей более сложной задачи этот пример послужит шаблоном. »
|
Не страдайте. Уже в примере видно, что выбранный Вами путь решения банально нелеп. Используйте либо средства самого VB6, либо объект TextStream библиотеки Automation «Scripting.FileSystemObject».
|
666egor666 |
15-05-2015 10:08 2507604 |
Цитата:
Цитата Iska
Где Ваш код, где Ваш проект? »
|
Ещё раз напоминаю, в теме я привёл пример, который может представить себе любой человек. Ни о каком проекте речи не идёт. Это только условная схема.
потому что для моих задач это необходимо делать именно через cmd. Это уже не относится к теме.
Цитата:
Цитата Iska
Код никак не может так выглядеть, поскольку переменные в приложении никоим образом не связаны с переменными окружения командного процессора. »
|
я не претендую на правильное написание кода, т.к. я даже не представляю как это осуществить. я привёл догадки, потому что ни бейсиком ни cmd я не владею даже на среднем уровне. По этому я и создал тему для того чтобы понять, осуществима ли задача вообще и стоит ли её развивать.
|
Мда…
Код:
Option Explicit
Sub Sample()
Dim sPath As String
sPath = "c:\path\podschet.txt"
Shell """" & Environ("comspec") & """ /c "">""" & sPath & """ echo 1"""
End Sub
|
Время: 06:33.
© OSzone.net 2001-