Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Создание текстового файла и запись в него. / 8 сообщений из 8, страница 1 из 1
02.02.2011, 22:08
    #37094092
Гость12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание текстового файла и запись в него.
Извините, если не в ту ветку пишу, но, вроде, б речь идёт о VB:

Мне нужно автоматизировать вставку скопированного текста в текстовый файл с заранее заданным именем. В VB - почти не разбираюсь, поэтому прошу мне помочь.
Предполагаемый алгоритм действий такой:
0) - полагаем, что в буфере обмена уже находятся скопированные текстовые данные (это копирование будет производиться вручную, после чего - вручную перехожу в проводнике в нужную папку);
1) - делаю DoubleClick или RightClick на пустом месте (а не на каком-либо файле);
2) - после этого в ТЕКУЩЕЙ папке должен образоваться (или открыться на запись, если он уже там имеется) файл ReadMe.txt;
3) - из буфера обмена туда вставляется (или добавляется в конец файла) ранее скопированное текстовое содержимое;
4) - файл сохраняется, но без закрывания.

Вот, подыскал по этому поводу в Интернете процедуру записи строки в файл:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub ShowInNotepad(StrToFile)
     Set FSO = CreateObject("Scripting.FileSystemObject")
     TempPath = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%TEMP%") & "\" & FSO.GetTempName
     Set TxtFile = FSO.CreateTextFile(TempPath)
     TxtFile.WriteLine(StrToFile)
     TxtFile.Close
     CreateObject("WScript.Shell").Run "notepad.exe " & TempPath
     'WScript.Sleep 1000 'Ожидание, чтобы блокнот запустился
     'FSO.DeleteFile(TempPath)
End Sub
Теперь мне надо:
1) - какими-то командами вместо строки StrToFile подставить содержимое буфера обмена;
2) - как-то определить текущую папку с полным путём, чтоб подставить её вместо "%TEMP%" - прочитал, что может помочь "self", только как его синтаксически сюда втюхать?;
Подскажите, пожалуйста, какими командами VB можно было б это выполнить.
...
Рейтинг: 0 / 0
02.02.2011, 22:11
    #37094094
Гость12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание текстового файла и запись в него.
Извините, спешил, и забыл SRC VB поставить. Прошу модераторов подправить.
...
Рейтинг: 0 / 0
03.02.2011, 18:31
    #37096138
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание текстового файла и запись в него.
Гость12,

что есть текущая папка? Папка, которую Вы выбрали в проводнике?
...
Рейтинг: 0 / 0
03.02.2011, 19:16
    #37096212
TpaBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание текстового файла и запись в него.
Гость12,
Вот тебе помощь в фсо
и вот тебе мой небольшой кусок кода работы с файлом
может, что нибудь пригодится
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
objFSO.CopyFile F, VB.App.Path & "\" & objFSO.GetBaseName(F) & ".log", True
Set File = fso.GetFile(VB.App.Path & "\" & objFSO.GetBaseName(F) & ".log")
Set txt = File.OpenAsTextStream(ForReading)
Do While Not txt.AtEndOfStream
MyText = txt.ReadLine
    If (MyText Like "*T2RXXXXG*") = False Then
    T = T & IIf(T <> "", vbCrLf, "") & MyText
    End If
Loop
txt.Close
For i =  4  To  14 
TN = TN & vbCrLf & Split(Split(T, "</T1R02G16>")( 1 ), vbCrLf)(i)
Next
TN = "        <T2R01G7>" & Replace(Round(SumAll,  2 ), ",", ".") & "</T2R01G7>" & vbCrLf & _
    "        <T2R01G8>" & Replace(Round(SumVPDV,  2 ), ",", ".") & "</T2R01G8>" & vbCrLf & _
    "        <T2R01G9>" & Replace(Round(SumPDV,  2 ), ",", ".") & "</T2R01G9>" & TN
    
T = Split(T, "</T1R02G16>")( 0 ) & "</T1R02G16>" & vbCrLf & ColAll & vbCrLf & TN
Set File = fso.GetFile(VB.App.Path & "\" & objFSO.GetBaseName(F) & ".log")
Set txt = File.OpenAsTextStream(ForWriting)
Call txt.Write(T)
txt.Close

Name VB.App.Path & "\" & objFSO.GetBaseName(F) & ".log" As VB.App.Path & "\" & objFSO.GetBaseName(F) & ".xml"
objFSO.CopyFile VB.App.Path & "\" & objFSO.GetBaseName(F) & ".xml", F, True
objFSO.DeleteFile VB.App.Path & "\" & objFSO.GetBaseName(F) & ".xml"
MsgBox "Экспорт завершен"
...
Рейтинг: 0 / 0
03.02.2011, 19:18
    #37096216
TpaBka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание текстового файла и запись в него.
ой неприложился файл
...
Рейтинг: 0 / 0
04.02.2011, 00:55
    #37096685
Гость12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание текстового файла и запись в него.
Большое спасибо всем за участие, особенно to TpaBka за FSO по-русски - этого мне зачастую сильно не хватало для полного счастья :)
Я тут немного продвинулся в вопросах определения текущей папки и понял, что не совсем понятно изложил свой вопрос. В общем - эту часть вопроса решил найденным в интернете кодом:
Код: plaintext
1.
2.
Set WshShell = CreateObject("WScript.Shell")
Var_asd=WshShell.CurrentDirectory
'MsgBox WshShell.CurrentDirectory
Вторая часть вопроса (DoubleClick или RightClick на пустом месте проводника), видимо, связана с формированием собственного макроса на уровне ОС или собственного пункта контекстного меню произвольной папки. Предполагаю, что это - за пределами VB.
Ладно, это пока отложу - может, придумаю другой способ, не связанный с DoubleClick или RightClick.
А вот насчёт буфера обмена - полагаю, что в VB есть функции для работы с ним. Подскажите, пожалуйста, в какую сторону смотреть - как они пишутся? Чтоб я мог найти их описание.
И попутно - извините, если немного не по этой теме: прочёл HELP по-аглицки, и не въехал: разве WorkSheet и Sheet не синонимы? Написано, что Sheet может содержать в себе WorkSheet - а чем они принципиально различаются, если по-русски? Когда применяется одно, а когда - другое?
...
Рейтинг: 0 / 0
04.02.2011, 01:13
    #37096701
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание текстового файла и запись в него.
Гость12Вторая часть вопроса (DoubleClick или RightClick на пустом месте проводника), видимо, связана с формированием собственного макроса на уровне ОС или собственного пункта контекстного меню произвольной папки. Предполагаю, что это - за пределами VB.Нет, это не макрос на уровне ОС, это shell extensions.
Читать отсюда: http://msdn.microsoft.com/en-us/library/ff521728%28v=VS.85%29.aspx

Гость12А вот насчёт буфера обмена - полагаю, что в VB есть функции для работы с ним. Подскажите, пожалуйста, в какую сторону смотреть - как они пишутся? Чтоб я мог найти их описание.Clipboard. Учи английский.

Гость12И попутно - извините, если немного не по этой теме: прочёл HELP по-аглицки, и не въехал: разве WorkSheet и Sheet не синонимы? Написано, что Sheet может содержать в себе WorkSheet - а чем они принципиально различаются, если по-русски? Когда применяется одно, а когда - другое?Да, это не синонимы. Да они принципиально различаются.
...
Рейтинг: 0 / 0
04.02.2011, 11:52
    #37097464
Гость12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание текстового файла и запись в него.
To White Owl:
Большое спасибо за краткие и чёткие объяснения. Они даже мне, бывшему военному понятны :)
По иронии судьбы весьма сносно владею разговорным английским. Правда, на курсах штабного перевода Clipboard'ы почему-то не изучаются - видать, методисты забыли включить в программу. :)
А вот Ваша msdn-ссылка лишь укрепила меня в мысли, что тот вопрос (насчёт DoubleClick или RightClick) таки не относится к VB, ибо там примеры - на С (или чём-то Си-пдобном), а это уже - тяжёлая артиллерия, т.е. - не мой случай (не авиация, в смысле:)
В общем, с буфером обмена уже почти разобрался, благодаря именно наводке на Clipboard. Спасибо!
Прошу считать тему исчерпанной.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Создание текстового файла и запись в него. / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]