Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   vb 6. Передача строковой переменной в shell (http://forum.oszone.net/showthread.php?t=299805)

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

Iska 15-05-2015 09:52 2507601

Цитата:

Цитата 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
Где Ваш код, где Ваш проект? »

Ещё раз напоминаю, в теме я привёл пример, который может представить себе любой человек. Ни о каком проекте речи не идёт. Это только условная схема.
Цитата:

Цитата Iska
Зачем так? »

потому что для моих задач это необходимо делать именно через cmd. Это уже не относится к теме.
Цитата:

Цитата Iska
Код никак не может так выглядеть, поскольку переменные в приложении никоим образом не связаны с переменными окружения командного процессора. »

я не претендую на правильное написание кода, т.к. я даже не представляю как это осуществить. я привёл догадки, потому что ни бейсиком ни cmd я не владею даже на среднем уровне. По этому я и создал тему для того чтобы понять, осуществима ли задача вообще и стоит ли её развивать.

Iska 15-05-2015 13:53 2507702

Мда…
Код:

Option Explicit

Sub Sample()
    Dim sPath As String
   
    sPath = "c:\path\podschet.txt"
   
    Shell """" & Environ("comspec") & """ /c "">""" & sPath & """ echo 1"""
End Sub



Время: 06:33.

Время: 06:33.
© OSzone.net 2001-