Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
3 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 248

Где ошибка?

03.03.2013, 14:24. Показов 798. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Visual Basic
1
Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileC" (ByVal lpExistingFileName As String, ByVal lpNewFileName As
Visual Basic
1
2
3
String, ByVal bFailIfExists As Long) As Long
MkDir "C:\tmp"
С = CopyFile(App.Path & "\amd.txt", "C:\tmp", False)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.03.2013, 14:24
Ответы с готовыми решениями:

Где ошибка?
Нужно решить задачку. Кроме бэйсика ничего не знаю, поэтому решил в экселе написать ...

где ошибка
срочна) исправте ошибку плизз вопрос жизни и смерти) нехочет вторая функция работать Private Sub Command1_Click() Dim X As Single, Y...

Где ошибка
Дана символьная строка, представляющая собой запись натурального числа в р-ичной системе счисления (2 <= р <= 9). Составить программу...

4
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
03.03.2013, 14:37
Второй параметр должен быть не путь к папке, а имя файла (lpNewFileName)
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,733
Записей в блоге: 14
03.03.2013, 16:03
А зачем такая "тяжелая артиллерия", если в VB/VBA есть встроенная функция FileCopy ?..
1
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,907
03.03.2013, 16:11
MorfixProton, что-то все Ваши коды обрезаны в непонятных местах?

Цитата Сообщение от Alex77755 Посмотреть сообщение
Второй параметр должен быть не путь к папке, а имя файла (lpNewFileName)
"C:\tmp" - вполне допустимое имя для файла, лишь бы занято не было
0
Телекомпания ВИD
 Аватар для anny05
1364 / 115 / 19
Регистрация: 14.10.2012
Сообщений: 100
03.03.2013, 18:05
Раз уж на то пошло...

MorfixProton,
прежде чем задавать вопросы, Вам следовало сначала ознакомиться с

https://www.cyberforum.ru/abou... ment8.html
https://www.cyberforum.ru/misc.php?do=bbcode

Это первое.
Во вторых, почему у Вас такое безобразное офомление кода и неинформативное название темы?
Почему Вы не пытались решить проблему самостоятельно (когда об этом прописано в правилах форума),
думая, что за Вас все сделают нахаляву?

Далее, непосредственно по вопросу.
У Вас ошибки на каждом шагу. В частности:
1. Где в MSDN вы взяли это слово: "CopyFileC"?
2. Вы не понимаете, для чего используется слово "Alias".
А это значит, что вы не понимаете разницу между ANSI (CopyFileA) и unicode-версией (CopyFileW) функции
(с использованием "\\?\"), а также не знаете, что существует и расширенная версия (CopyFileEX).
3. Почему используете False и не дописали имя файла?

Не вижу смысла разговаривать дальше, если Вы не понимаете очевидных вещей (и не делаете никаких усилий, чтобы это исправить).
Но сделаю исключение, в последний раз.


Visual Basic
1
2
3
4
5
6
7
Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
 
Private Sub Command1_Click()
  Dim r As Long
  r = CopyFile("C:\WINDOWS\system32\calc.exe", "C:\calc.exe", 1)
  If r = 0 Then MsgBox "Файл уже используется"
End Sub

Зачем Вы затрагиваете тему API (когда можно обойтись стандартными средствами), не понимая, что это всего лишь
вершина айсберга в механизме копирования.
Может быть, Вы хотите пойти еще дальше?

Тогда я сомневаюсь, что Вы имеете представление о более низких уровнях: исполняемой подсистеме (NtReadFile и NtWriteFile), диспетчере ввода/вывода, а также в различии и особенностях использования механизма кеширования при копировании в различных версиях ОС Windows.
И Вы не понимате, каким образом он взаимодействует с низкоуровневыми драйверами дискового устройства (без чего копирование невозможно).

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
Private Declare Function OpenFile& Lib "kernel32" (ByVal Name As String, ByVal OFs As Long, ByVal Flags As Long)
Private Declare Function NtReadFile& Lib "ntdll" (ByVal Hwnd As Long, ByVal Result As Long, ByVal DesiredAccess As Long, ByVal ObjectAttributes As Long, ByVal IoStatusBlock As Long, ByVal Access As Long, ByVal Length As Long, Optional ByVal Count As Long, Optional ByVal OpenOptions As Long)
Private Declare Function NtWriteFile& Lib "ntdll" (ByVal Hwnd As Long, ByVal Result As Long, ByVal DesiredAccess As Long, ByVal ObjectAttributes As Long, ByVal IoStatusBlock As Long, ByVal Access As Long, ByVal Length As Long, Optional ByVal Count As Long, Optional ByVal OpenOptions As Long)
Private Declare Function CloseHandle& Lib "kernel32" (ByVal Hwnd As Long)
 
Public Function ReadFile(ByVal Name As String, ByRef Inpt() As Byte) As Boolean
Dim Hwnd&, Sector&(1), Struct&(33)
ReDim Inpt(FileLen(Name))
Hwnd = OpenFile(Name, VarPtr(Struct(0)), 0)
If NtReadFile(Hwnd, 0, 0, 0, VarPtr(Sector(0)), VarPtr(Inpt(0)), UBound(Inpt)) = 0 Then ReadFile = True
CloseHandle Hwnd
End Function
 
Public Function WriteFile(ByVal Name As String, ByRef Inpt() As Byte) As Boolean
Dim Hwnd&, Sector&(1), Struct&(33)
CloseHandle OpenFile(Name, VarPtr(Struct(0)), 4096)
Hwnd = OpenFile(Name, VarPtr(Struct(0)), 1)
If NtWriteFile(Hwnd, 0, 0, 0, VarPtr(Sector(0)), VarPtr(Inpt(0)), UBound(Inpt)) = 0 Then WriteFile = True
CloseHandle Hwnd
End Function
 
Private Sub Command1_Click()
Dim Access() As Byte
Call ReadFile("C:\WINDOWS\system32\calc.exe", Access)
Call WriteFile("C:\calc.exe", Access)
End Sub
(проверено на XP, другими системами не располагаю)

MorfixProton, будет еще лучше, если Вы получите нобелевскую премию, сразу оперируя HAL-функциями, напрямую управляя контроллером жесткого диска, с помощью лишь Visual Basic (а лучше VBA).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.03.2013, 18:05
Помогаю со студенческими работами здесь

где ошибка в коде
Dim a As Integer, b As Integer, d As Integer, c As Integer Private Sub Command1_Click() a = Tomny b = 465 c = Val(Text1.Text) ...

не подскажите где ошибка ?
писал прогу для того чтобы: Удалить из него каждую строку, содержащую нулевой элемент. ВОТ ПРОГРАММА, ГДЕ ЗДЕСЬ ОШИБКА Private...

Где ошибка в блок-схеме
мне кажется я пропустил b Если это так,то как вставить :? Private Sub Command1_Click() Dim n As Integer Dim i As Integer Dim...

Ошибка с индексом, где она не представляю
Здравствуйте, я тут недавно делал тему, где делал перекат с 1 таблицы в другую, там была моя ошибка - невнимательность. Но щас проблема...

Найти максимальные элементы в столбцах матрицы B. Где ошибка?
Найти максимальные элементы в столбцах матрицы B. Поменять их местами с элементами первой строки соответствующего столбца. Где ошибка? ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru