Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
family
0 / 0 / 0
Регистрация: 01.12.2014
Сообщений: 49
1

Сохранить в .xls (App.Path)

16.12.2014, 15:15. Просмотров 968. Ответов 12
Метки нет (Все метки)

В общем написал небольшую программку, которая считывает информацию с прибора (не суть). Отображает данные как в окне, так и делает запись в .txt. Но мне надо реализовать сохранение в .xls и в самой папке с программой, подтолкнули, что реализовать надо через App.Path.

Подскажите, как это сделать?

P.S. Код на всякий случай. Особо на него не смотрите, там еще поправить надо.
Visual Basic
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
Dim myNum As Integer
Dim myAdress As Integer
Dim myCmd As String
Dim strMetIn As String
Dim strMetOut As String
Dim myCanal As Integer
Dim myReg As String
Dim NumAdress As Integer
Dim intCOM() As Integer
Dim nymCOM As Integer
Dim intSpeed(1 To 4) As Integer
Dim numSpeed As Integer
Dim myCOM As Integer
Dim N As Integer
Dim F As String
 
Private Sub closeCOM_Click()
MSComm1.PortOpen = False
Timer1.Enabled = False
Close
End Sub
 
Private Sub cmdRead_Click()
myCmd = "00"
strMetIn = Chr(Val(Str("&H" & myAdress))) & Chr(Val(Str(myCanal))) & Chr(Val("&H" & myReg)) & Chr(Val("&H" & myCmd))
Label1.Caption = Hex(Asc(myControlSum(strMetIn)))
strMetIn = strMetIn & myControlSum(strMetIn)
strMetOut = ""
Label3.Caption = ""
shpControlSum.FillColor = &HFF&
MSComm1.Output = strMetIn
End Sub
 
Private Sub Form_Load()
F = App.Path & "\1234." & "1234.txt"
'F = FreeFile
'Open "C:\massive.txt" For Append As #F
N = 1
'ReDim intCOM(N)
myNum = 3
myAdress = 2
myCanal = 0
myReg = "01"
NumAdress = 1
MSComm1.InputLen = 1
MSComm1.RThreshold = 1
nymCOM = 1
intSpeed(1) = 2400
intSpeed(2) = 4800
intSpeed(3) = 9600
intSpeed(4) = 19200
End Sub
 
Private Sub MSComm1_OnComm()
Dim strSymb As String
Select Case MSComm1.CommEvent
Case comEvReceive
strSymb = MSComm1.Input
strMetOut = strMetOut & strSymb
Label3.Caption = Label3.Caption & "/" & Hex(Asc(strSymb))
Label4.Caption = (Str(Len(strMetOut)))
If chekControlSum(strMetOut) = True Then
shpControlSum.FillColor = &HFF00&
Label4.Caption = "Г„Г*Г*Г*ûå:" & writeData(strMetOut) & vbCrLf _
                 & "Àäðåñ: " & Str(chekNumAdres(strMetOut)) & vbCrLf _
                 & "Íîìåð ГЄГ*Г*Г*Г«Г*: " & Str(chekNumKanal(strMetOut)) & vbCrLf _
                 & "ГђГҐГЈГЁГ±ГІГ°: " & chekRegAdres(strMetOut) & vbCrLf _
                 & "ÊîìГ*Г*Г¤Г*: " & chekComand(strMetOut) & vbCrLf _
                 & "Г’ГЁГЇ Г¤Г*Г*Г*ûõ: " & chekTypeData(strMetOut) & vbCrLf _
                 & "ÄëèГ*Г* Г¤Г*Г*Г*ûõ: " & chekLenData(strMetOut) & vbCrLf _
                 
Else
Label4.Caption = ""
shpControlSum.FillColor = &HFF&
End If
End Select
End Sub
 
Private Sub opnCOM_Click()
Timer1.Enabled = True
MSComm1.CommPort = myNum
MSComm1.Settings = "9600, N, 8, 1"
MSComm1.PortOpen = True
 
End Sub
 
Private Sub Timer1_Timer()
myCmd = "00"
strMetIn = Chr(Val(Str("&H" & myAdress))) & Chr(Val(Str(myCanal))) & Chr(Val("&H" & myReg)) & Chr(Val("&H" & myCmd))
Label1.Caption = Hex(Asc(myControlSum(strMetIn)))
strMetIn = strMetIn & myControlSum(strMetIn)
strMetOut = ""
Label3.Caption = ""
shpControlSum.FillColor = &HFF&
MSComm1.Output = strMetIn
ReDim Preserve intCOM(N)
intCOM(N) = Val(strMetIn)
N = N + 1
Text1.Text = Text1.Text & Str(N)
Print #F, N
End Sub
Добавлено через 57 минут
UPD. Как сделать документ в папке с программой разобрался.
Visual Basic
1
2
F = FreeFile
Open App.Path & "\1234" & "\1234.xls" For Append As #F
Теперь стоит задача, чтобы при записи документа его имя в формате даты и времени, т.е. новый файл - 16.12.14-15:15
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2014, 15:15
Ответы с готовыми решениями:

Объект App и свойство Path
Здравствуйте! У меня VB 6.0. Никак не получается разобраться с объектом App и...

App.Path для mciExecute не работает на W98
У меня еще такой вопрос тут "вскочил", помогите. Применяю в программе функцию...

App.Path срабатывает только если программа в корне
Возникла проблема, сохраняю файл из своей программы - путь сохранения...

Как сделать чтобы exe ссылался на ActiveX в app.path?
как сделать чтобы .exe ссылался на ActiveX в app.path ??? заранее благодарен

a path string that specifies a file that you can use to store a spooled print job
Хожу по MSDN, и все время натукаюсь на странные вещи. Вот например: local...

12
Апострофф
Заблокирован
16.12.2014, 15:36 2
Лучший ответ Сообщение было отмечено Апострофф как решение

Решение

Цитата Сообщение от family Посмотреть сообщение
имя в формате даты и времени, т.е. новый файл - 16.12.14-15:15
Visual Basic
1
FName= App.Path & "\" & format$(now,"новый файл - dd.mm.yy-hh_nn") & ".xls"
Двоеточия в именах файлов не допускаются, кажется?
1
family
0 / 0 / 0
Регистрация: 01.12.2014
Сообщений: 49
16.12.2014, 15:47  [ТС] 3
Цитата Сообщение от Апострофф Посмотреть сообщение
Двоеточия в именах файлов не допускаются, кажется?
Да, извини, это моя невнимательность, т.к. как только учусь.
Спасибо, теперь все работает.

UPD. А если например я создам в папке с программой еще одну папку (например test), то как делать запись именно в нее?
0
Alex77755
10760 / 3329 / 557
Регистрация: 13.02.2009
Сообщений: 9,799
17.12.2014, 03:39 4
И что? так работает?
Visual Basic
1
2
Open App.Path & "\1234" & "\1234.xls" For Append As #F
Print #F, N
Visual Basic
1
FName= App.Path & "\test\" & format$(now,"новый файл - dd.mm.yy-hh_nn") & ".xls"
екселовский файл не получится так!
0
family
0 / 0 / 0
Регистрация: 01.12.2014
Сообщений: 49
17.12.2014, 08:23  [ТС] 5
Цитата Сообщение от Alex77755 Посмотреть сообщение
И что? так работает?
Код Visual Basic
1
2
Open App.Path & "\1234" & "\1234.xls" For Append As #F
Print #F, N
При таком варианте не было записи в файл.

А вот код ниже работает, файл создает, в него пишет данные.
0
Апострофф
Заблокирован
17.12.2014, 08:31 6
family, а как именно пишет данные?
Я ещё вчера хотел сказать, файла в Excel-формате Вы таким образом не получите, даже придав ему расширение *.XLS
0
family
0 / 0 / 0
Регистрация: 01.12.2014
Сообщений: 49
17.12.2014, 09:21  [ТС] 7
Цитата Сообщение от Апострофф Посмотреть сообщение
family, а как именно пишет данные?
Я ещё вчера хотел сказать, файла в Excel-формате Вы таким образом не получите, даже придав ему расширение *.XLS
В одну строку - одно значение.
0
Alex77755
10760 / 3329 / 557
Регистрация: 13.02.2009
Сообщений: 9,799
17.12.2014, 11:12 8
А при чём тогда XLS?

Добавлено через 1 минуту

Не по теме:

Мой файл! Как хочу так и назову!


0
Апострофф
Заблокирован
17.12.2014, 11:23 9
Да ладно. Excel открывает его (как ни странно) из проводника, в отличие от тех же TXT-файлов
0
Alex77755
10760 / 3329 / 557
Регистрация: 13.02.2009
Сообщений: 9,799
17.12.2014, 12:14 10
Молча открывает?
У меня ругается
0
family
0 / 0 / 0
Регистрация: 01.12.2014
Сообщений: 49
17.12.2014, 22:18  [ТС] 11
Цитата Сообщение от Alex77755 Посмотреть сообщение
Молча открывает?
У меня ругается
Открывает без проблем, Office 2003.
0
Alex77755
10760 / 3329 / 557
Регистрация: 13.02.2009
Сообщений: 9,799
18.12.2014, 13:47 12
Ну да ексел умеет открывать не свои файлы, но перед этим у меня он ругается
0
family
0 / 0 / 0
Регистрация: 01.12.2014
Сообщений: 49
18.12.2014, 16:51  [ТС] 13
Переписал на такой вид:
Visual Basic
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
Dim oExcel As Object
   Dim oBook As Object
   Dim oSheet As Object
 
   Set oExcel = CreateObject("Excel.Application")
   Set oBook = oExcel.Workbooks.Add
 
   Set oSheet = oBook.Worksheets(1)
   oSheet.Range("A1").Value = "Àäðåñ ïðèáîðГ*: "
   oSheet.Range("B1").Value = "Íîìåð ГЄГ*Г*Г*Г«Г*: "
   oSheet.Range("C1").Value = "ГђГҐГЈГЁГ±ГІГ°: "
   oSheet.Range("D1").Value = "ÊîìГ*Г*Г¤Г*: "
   oSheet.Range("E1").Value = "Г’ГЁГЇ Г¤Г*Г*Г*ûõ: "
   oSheet.Range("F1").Value = "ÄëèГ*Г* Г¤Г*Г*Г*ûõ: "
   oSheet.Range("G1").Value = "Г„Г*Г*Г*ûå: "
   oSheet.Range("A1:B1:C1:D1:E1:F1:G1").Font.Bold = True
   oSheet.Range("A2").Value = Str(chekNumAdres(strMetakonOut))
   oSheet.Range("B2").Value = Str(chekNumKanal(strMetakonOut))
   oSheet.Range("C2").Value = chekRegAdres(strMetakonOut)
   oSheet.Range("D2").Value = chekComand(strMetakonOut)
   oSheet.Range("E2").Value = chekTypeData(strMetakonOut)
   oSheet.Range("F2").Value = chekLenData(strMetakonOut)
   oSheet.Range("G2").Value = writeData(strMetakonOut)
 
   oBook.SaveAs App.Path & "\PR" & Format$(Now, "file - dd.mm.yy-hh_nn") & ".xls"
   oExcel.Quit
0
18.12.2014, 16:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2014, 16:51

Как программно в FolderDialogBox установить Path туда, куда тебе нужно?
В примерах по VB на этом сайте встречается два - по выводу FolderDialogBox Но...

VB и XLS
Привет всем. Прошу даже не помощи а совета. Есть пару файликов Excel. Два из...

Почему App.TaskVisible = False не работает на Win7
Почему код App.TaskVisible = False не работает на Win7 ????


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru