Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/14: Рейтинг темы: голосов - 14, средняя оценка - 4.86
46 / 46 / 5
Регистрация: 24.03.2011
Сообщений: 315

Переделать код с Delphi на VB

15.04.2012, 18:55. Показов 2921. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Написал код на delphi:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
type tbook=record
x:array [1..4] of real;
y:real;
c:array [1..5] of real;
z1:array [1..4] of real;
z2:array [1..4] of real;
z3:array [1..4] of real;
end;
var
book:tbook;
f:file of tbook;
i:integer;
begin
 
    AssignFile(F, 'C:\Program Files\ProgramVr 2.0\books.dat'); { связать с указателем }
Reset(F);        { открыть для чтения }
Read(F, Book);       { чтение }
Пробую переиначить на basic:

Visual Basic
1
2
3
4
5
6
7
8
9
type tbook
Dim x(5) as double
Dim y as double
Dim c(5) as double
Dim z1(4) as double
Dim z2(4) as double
Dim z3(4) as double
end type
Public book As tbook
Осталось одно: открыть файл, оттуда данные перекинуть в запись tbook.

Объясните, пожалуйста, как это сделать.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.04.2012, 18:55
Ответы с готовыми решениями:

Переделать код с Pascal на Delphi
Необходимо переделать данный код под Delphi. Ответить, желательно, не ссылкой на похожий вопрос, а кодом и объясненем. uses CRT; ...

Переделать код макроса на delphi
здравствуйте. подскажите плиз . подскажите как переделать код макроса по delphi / Private Sub CommandButton1_Click() Dim T, P As...

Переделать код GPSS в Delphi
Здравствуйте! Есть задание: в вычислительную машину, работающую в системе управления технологическим процессом, через каждые 3+-1 с...

31
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
15.04.2012, 19:20
Цитата Сообщение от kkk008009kkk Посмотреть сообщение
Осталось одно

Ты только объявил пользовательский тип и одну переменную. И на Делфи тоже ничего нет.
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
Option Explicit
Private Type tbook
  x(1 To 5) As Double
  y As Double
  c(1 To 5) As Double
  z1(1 To 4) As Double
  z2(1 To 4) As Double
  z3(1 To 4) As Double
End Type
Private Book As tbook
Private Sub Command1_Click()
Dim i As Integer
 Open "C:\Program Files\ProgramVr 2.0\books.dat" For Input As #1
   For i = 1 To 5
      Input #1, Book.x(i)
   Next i
      Input #1, Book.y
   For i = 1 To 5
      Input #1, Book.c(i)
   Next i
   For i = 1 To 4
      Input #1, Book.z1(i)
   Next i
   ' и так далее.............
   '.........................
   Close #1
End Sub
1
46 / 46 / 5
Регистрация: 24.03.2011
Сообщений: 315
15.04.2012, 19:48  [ТС]
SoftIce, На Delphi все есть. И работает.

Неужели нельзя, как в delphi, сделать?:

Read(F, Book);//прочитать файл в запись.
Добавлено через 11 минут
Компилятор выдает ошибку на ваш код: недействительная процедура внутри

Код немного изменяю:

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
Private Sub Command1_Click()
Option Explicit
Private Type tbook
  x(1 To 5) As Double
  y As Double
  c(1 To 5) As Double
  z1(1 To 4) As Double
  z2(1 To 4) As Double
  z3(1 To 4) As Double
End Type
Private Book As tbook
Dim i As Integer
 Open "C:\Program Files\ProgramVr 2.0\books.dat" For Input As #1
   For i = 1 To 5
      Input #1, Book.x(i)
   Next i
      Input #1, Book.y
   For i = 1 To 5
      Input #1, Book.c(i)
   Next i
   For i = 1 To 4
      Input #1, Book.z1(i)
   Next i
   For i = 1 To 4
      Input #1, Book.z2(i)
       Next i
   For i = 1 To 4
      Input #1, Book.z3(i)
    Close #1
    Text1.Text = Book.z3(1)
    
    
End Sub
Какой в basice есть аналог floattostr?
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
15.04.2012, 19:56
Цитата Сообщение от kkk008009kkk Посмотреть сообщение
Компилятор выдает ошибку
У меня VB6. Может ты не туда обратился?
1
46 / 46 / 5
Регистрация: 24.03.2011
Сообщений: 315
15.04.2012, 19:58  [ТС]
SoftIce, Такой же. Ошибка в

Visual Basic
1
Text1.Text = Book.z3(1)
Но не могу найти функцию преобразования числа в строку.

П.С. В delphi оказывается все так просто.
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
15.04.2012, 20:04
Цитата Сообщение от kkk008009kkk Посмотреть сообщение
Какой в basice есть аналог floattostr
CStr()

Добавлено через 4 минуты
Цитата Сообщение от kkk008009kkk Посмотреть сообщение
Visual Basic
1
2
3
4
For i = 1 To 4
Input #1, Book.z3(i)
Close #1
Text1.Text = Book.z3(1)
Внимательнее! Пропустил Next i.
1
46 / 46 / 5
Регистрация: 24.03.2011
Сообщений: 315
15.04.2012, 20:06  [ТС]
Visual Basic
1
2
3
4
5
6
7
8
9
10
 For i = 1 To 5
      Input #1, Book.x(i)
   Next i
      Input #1, Book.y
   For i = 1 To 5
      Input #1, Book.c(i)
   Next i
   For i = 1 To 4
      Input #1, Book.z1(i)
   Next i
В самоучителе приводится такая связка:

For переменная=число To другое число Step Шаг

Всякие операторы

Next переменная
А у вас другая.

Проверьте, пожалуйста, у себя следующий код:

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
Private Sub Command2_Click()
 
Option Explicit
Private Type tbook
  Dim x(1 To 5) As Double
  Dim y As Double
  Dim c(1 To 5) As Double
  Dim z1(1 To 4) As Double
  Dim z2(1 To 4) As Double
  Dim z3(1 To 4) As Double
End Type
Private Book As tbook
Dim i As Integer
 Open "C:\Program Files\ProgramVr 2.0\books.dat" For Input As #1
   For i = 1 To 5
      Input #1, Book.x(i)
   Next i
      Input #1, Book.y
   For i = 1 To 5
      Input #1, Book.c(i)
   Next i
   For i = 1 To 4
      Input #1, Book.z1(i)
   Next i
   For i = 1 To 4
      Input #1, Book.z2(i)
       Next i
   For i = 1 To 4
      Input #1, Book.z3(i)
      Next i
    Close #1
    Text1.Text = CStr(Book.z3(1))
    
End Sub
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
15.04.2012, 20:35
Цитата Сообщение от kkk008009kkk Посмотреть сообщение
В самоучителе приводится такая связка:
For переменная=число To другое число Step Шаг
Всякие операторы
Next переменная
А у вас другая.
Visual Basic
1
2
3
   For i = 1 To 4 ' For переменная=число To другое число Step Шаг (Шаг не указан -по умолчанию  =1)
      Input #1, Book.z1(i)  'Всякие операторы
   Next i   '  Next переменная
Что не так?

Добавлено через 4 минуты
Цитата Сообщение от kkk008009kkk Посмотреть сообщение
Проверьте, пожалуйста, у себя следующий код
Давай файл books.dat.
1
46 / 46 / 5
Регистрация: 24.03.2011
Сообщений: 315
15.04.2012, 20:36  [ТС]
SoftIce, Да все не так: не работает программа.

Скачал сейчас сторонний проект на VB 6.0 . Запустил, работает. А этот не хочет, ошибку выдает.
0
46 / 46 / 5
Регистрация: 24.03.2011
Сообщений: 315
15.04.2012, 20:38  [ТС]
Архив. Файл books.dat

Может проблема в том, то файл books.dat был создан паскалем? Хотя при изменении файла ничего не изменяется.
Вложения
Тип файла: rar books.rar (229 байт, 12 просмотров)
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
15.04.2012, 22:05
Цитата Сообщение от kkk008009kkk Посмотреть сообщение
Может проблема в том, то файл books.dat был создан паскалем?
Может быть, и ещё - с ним надо работать, как с бинарным файлом, сейчас пробую, выдаёт 176 каких то козюбриков, пока никак.
Цитата Сообщение от kkk008009kkk Посмотреть сообщение
Скачал сейчас сторонний проект на VB 6.0 . Запустил, работает
Покажи.
1
46 / 46 / 5
Регистрация: 24.03.2011
Сообщений: 315
15.04.2012, 23:43  [ТС]
Вложение.
Миниатюры
Переделать код с Delphi на VB  
0
46 / 46 / 5
Регистрация: 24.03.2011
Сообщений: 315
15.04.2012, 23:44  [ТС]
Цитата Сообщение от SoftIce Посмотреть сообщение
может из-за того, что он был создан паскалем
Может быть, и ещё - с ним надо работать, как с бинарным файлом, сейчас пробую, выдаёт 176 каких то козюбриков, пока никак.
Сейчас на C++ сделал подобную вещь с файлом, все нормально.

Задача вобще: считать данные из файла и вычислить функцию на основе данных.

Может, как-то по другому сделать информацию в файле?
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
16.04.2012, 00:46
Так то он читает, но это коды символов ANSI козюбриков, как их засовывать в массив?
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Private Sub Command2_Click()
Dim i As Integer, MyChar As Byte, MyLocation, MyLine
Open App.Path & "\books.dat" For Binary As #1
Do While MyLocation < LOF(1) ' Цикл до конца файла
     MyLocation = Loc(1) ' Определяем текущую позицию внутри файла
Get #1, , MyChar
     MyLine = MyLine + (Str(MyChar))
Loop
Close #1
 Text1.Text = MyLine
End Sub
Добавлено через 4 минуты
Цитата Сообщение от kkk008009kkk Посмотреть сообщение
Задача вобще: считать данные из файла и вычислить функцию на основе данных.
Может, как-то по другому сделать информацию в файле?
Да легко, давай данные, я тебе их сохраню в файл, и считаю, когда нужно будет. Зачем мучится с каким то левым файлом?
Только уже не сегодня
1
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
16.04.2012, 09:23
Я его домучил
Вложения
Тип файла: rar 222.rar (7.0 Кб, 6 просмотров)
1
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
16.04.2012, 11:47
Как обещал, с текстовым файлом. Результат - не окончательный результат, а значение S.
Функция S написана, вызывается- S(Book.y).
Вложения
Тип файла: rar 222.rar (8.4 Кб, 10 просмотров)
1
46 / 46 / 5
Регистрация: 24.03.2011
Сообщений: 315
16.04.2012, 18:38  [ТС]
Переделал немного код для удобства.

Осталось сделать функцию перевода Z в радианы.

На Delphi я ее так реализовал:

Delphi
1
2
3
4
5
6
7
8
9
10
  function rad(x,y,z:real):real;
var i :integer;
    pi :real;
begin
  pi:=3.1415926535;
  rad:=((x+y/60+z/3600)*pi/180);
 
end;
 
z[i]:=rad(book.z1[i],book.z2[i],book.z3[i]);
Здесь еще знаний не хватает(
Вложения
Тип файла: rar 22222.rar (3.2 Кб, 6 просмотров)
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
16.04.2012, 20:06
Я полностью написал, если tg - это тангенс, а е=2,718282
Вложения
Тип файла: rar 22.rar (9.7 Кб, 7 просмотров)
0
46 / 46 / 5
Регистрация: 24.03.2011
Сообщений: 315
16.04.2012, 21:07  [ТС]
SoftIce, Я сделал вывод в другой файл(books1.txt) и

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub Command1_Click()  'Запись в файл
Dim i As Integer
 'C:\Program Files\ProgramVr 2.0\books.dat'
 Open App.Path & "\books1.txt" For Output As #1
   For i = 1 To 4
      Print #1, Text1(i).Text; Spc(10); " x " & Str(i)
   Next i
      Print #1, Text2.Text; Spc(10); " y "
   For i = 1 To 5
      Print #1, Text3(i).Text; Spc(10); " c " & Str(i)
   Next i
   For i = 1 To 4
      Print #1, Text4(i).Text; Spc(10); " z" & Str(i) & " градусы"
   Next i
   For i = 1 To 4
      Print #1, Text5(i).Text; Spc(10); " z" & Str(i) & " минуты"
   Next i
   For i = 1 To 4
      Print #1, Text6(i).Text; Spc(10); " z" & Str(i) & " секунды"
   Next i
 Close #1
End Sub
Заменил на
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Command1_Click()
Private Sub Command1_Click()
Dim j As Integer
Dim i As Integer
'Запись в файл
'C:\Program Files\ProgramVr 2.0\books.dat'
 Open App.Path & "\books1.txt" For Output As #1
   For i = 1 To 4
   For j = 1 To 4
      Print #1, Val(Replace((Text1(j).Text), ",", ".")), Val(Replace((Text2.Text), ",", ".")), Val(Replace((Text4(i).Text), ",", ".")); Val(Replace((Text5(i).Text), ",", ".")), Val(Replace((Text6(i).Text), ",", ".")), Val(Replace((Text7.Text), ",", "."))
   
      Next j
   Next i
   
 Close #1
End Sub
а также

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Command3_Click() ' Вычислить
    Dim i As Integer, funct(1 To 4) As Double
    Command1_Click '
    Command2_Click '
    Text7.Text = ""
    For i = 1 To 4
    
        zR(i) = Radian(Book.z1(i), Book.z2(i), Book.z3(i)) ' Заполняем массив значениям углов в радианах
        funct(i) = F(Book.x(i), Book.y, zR(i))             ' Вычисляем значения функции
        Text7.Text = Text7.Text & "F (" & i & ") = " & funct(i) & vbNewLine ' Выводим результат
    Next i
End Sub
на
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Command3_Click() ' Вычислить'
    Dim i As Integer, funct(1 To 16) As Double
    Dim j As Integer
    Dim k As Integer
    k = 0
    Command1_Click '
    Command2_Click '
    Text7.Text = ""
    For i = 1 To 4
   For j = 1 To 4
   k = k + 1
        zR(i) = Radian(Book.z1(i), Book.z2(i), Book.z3(i)) ' Заполняем массив значениям углов в радианах
        funct(k) = F(Book.x(j), Book.y, zR(i))             ' Вычисляем значения функции
        Text7.Text = Text7.Text & "F (" & i & ") = " & funct(i) & vbNewLine ' Выводим результат
    Next j
    Next i
End Sub
Теперь в файл вводится таблица из 16 результатов(4 разных х и 4 разных у=16).

Только в колонке результат выводится 0, нужно заменить вывод результата на funct.

И еще, результат точно правильный? Там все выводится, как отрицательный, но при подставновке он не может быть отрицательным. Значение S(y) и корень положительный, тангенс тоже положительный, экспонента тоже.
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
16.04.2012, 21:16
Цитата Сообщение от kkk008009kkk Посмотреть сообщение
И еще, результат точно правильный?
а я откуда знаю? Попробуй посчитать на калькуляторе.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.04.2012, 21:16
Помогаю со студенческими работами здесь

Код Delphi переделать в C++ Builder
unit AdditionalInfoForm; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ...

Переделать код из Delphi в С++ Builder 6
Помогите пожалуйста переделать код из Delphi в С++ Builder 6, я не прошу кого то просто взять и всё мне переделать, я прошу помощи, так как...

Переделать код из Билдера в Delphi
Добрый вечер. Столкнулся с проблемой , не знаю с++ , но срочно нужно написать по этому коду программу в Delphi. #ifndef Unit1H #define...

Переделать код с Pascal на Delphi
Необходимо переделать данный код под Delphi. Ответить, желательно, не ссылкой на похожий вопрос, а кодом и объясненем. uses CRT; ...

Переделать код из VBA в Delphi
Public Class Form1 Dim a As Integer Dim b As Integer Dim c As Integer Dim d As Integer Dim p As Integer ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru