PDA

Показать полную графическую версию : vb 6. Передача строковой переменной в shell


666egor666
15-05-2015, 09:28
Задачка такая: в бейсике в текстбокс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 > %а%". Понимаю, что первым делом возникает вопрос: а зачем тут командная строка? Ведь можно операцию записи единицы осуществить в том же бейсике. Отвечаю: это просто пример, самый простой и понятный. Для моей более сложной задачи этот пример послужит шаблоном. И ещё небольшое дополнение: мне не подходит решение, заключающееся в сохранении пути в текстовый файл через бейсик, а потом считывание этого пути командной строкой, т.е. некий буфер обмена (текстовый файл).

Iska
15-05-2015, 09:52
в бейсике в текстбокс1 пишу путь к текстовому файлу такого формата: "c:\path\podschet.txt", далее я объявляю строковую переменную "а" и присваиваю ей значение из текстбокс1. Т.е. в переменной "а" у меня хранится путь. »
Где Ваш код, где Ваш проект?

Далее мне нужно записать в этот podschet.txt просто единицу, с помощью cmd. »
Зачем так?

Задача заключается в том, чтобы в в команде shell не писать сам путь, а использовать переменную "а". Таким образом код должен выглядеть примерно так: shell "cmd.exe /c echo 1 > %а%". »
Код никак не может так выглядеть, поскольку переменные в приложении никоим образом не связаны с переменными окружения командного процессора.

Понимаю, что первым делом возникает вопрос: а зачем тут командная строка? Ведь можно операцию записи единицы осуществить в том же бейсике. Отвечаю: это просто пример, самый простой и понятный. Для моей более сложной задачи этот пример послужит шаблоном. »
Не страдайте. Уже в примере видно, что выбранный Вами путь решения банально нелеп. Используйте либо средства самого VB6, либо объект TextStream библиотеки Automation «Scripting.FileSystemObject».

666egor666
15-05-2015, 10:08
Где Ваш код, где Ваш проект? »
Ещё раз напоминаю, в теме я привёл пример, который может представить себе любой человек. Ни о каком проекте речи не идёт. Это только условная схема.
Зачем так? »
потому что для моих задач это необходимо делать именно через cmd. Это уже не относится к теме.
Код никак не может так выглядеть, поскольку переменные в приложении никоим образом не связаны с переменными окружения командного процессора. »
я не претендую на правильное написание кода, т.к. я даже не представляю как это осуществить. я привёл догадки, потому что ни бейсиком ни cmd я не владею даже на среднем уровне. По этому я и создал тему для того чтобы понять, осуществима ли задача вообще и стоит ли её развивать.

Iska
15-05-2015, 13:53
Мда…
Option Explicit

Sub Sample()
Dim sPath As String

sPath = "c:\path\podschet.txt"

Shell """" & Environ("comspec") & """ /c "">""" & sPath & """ echo 1"""
End Sub




© OSzone.net 2001-2012