Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > помогите решить задачку по VB


Автор: zenkaman 31.3.2006, 12:00
Создать файл, содержащий сведения об отправлении поездов дальнего следования с вокзала. Каждая запись содержит поля: номер поезда, станция назначения, время отправления, время в пути, наличие билетов.
Написать программу, которая позволяет получить следующую информацию:
- время отправления поездов в город Х во временном интервале от А до В часов;
- наличие билетов на поезд с номером ХХХ.


Автор: Akina 31.3.2006, 14:01
Это Центр помощи. Давай код - поможем доработать.
Или топай в раздел "Поиск специалистов" и заказывай.

Автор: zenkaman 1.4.2006, 19:11
...

Автор: cardinal 1.4.2006, 20:01
Примеры тут:
http://forum.vingrad.ru/index.php?showtopic=87195
http://forum.vingrad.ru/index.php?showtopic=87207
http://forum.vingrad.ru/index.php?showtopic=26403
...
То есть пользуйся поиском!
Добавлено @ 20:01
И транслитом!

Автор: zenkaman 4.4.2006, 09:41
Пожалуста помогите исправить, у меня последний день остался.

Код

Private Sub Command1_Click()
Dim StrPerem As String
Dim StrTemp As String
Open "c:\test.txt" For Input As #1
Do While Not (EOF(1))
Input #1, StrTemp
StrPerem = StrPerem & StrTemp
Loop
Close #1
arr = Split(StrPerem, "")
MsgBox arr(0)
End Sub


С:\test.txt
245 Город1 10.50
456 Город2 11.40
722 Город3 12.35
Надо чтоб прога выташила из файла только столбик с временем и потом его выдала

Мне выкидывает в MsgBox все вместе :
245 Город1 10.50456 Город2 11.40722 Город3 12.35 smile

Автор: zenkaman 4.4.2006, 13:39
А можно ли с помощью Split разделить строку во время чтения файла и каждый элемент записать не в один StrTemp, а каждый отдельно? Например: 245 в StrНомер, Город1 в StrКуда, 10.50 в StrВремя.

Автор: cardinal 4.4.2006, 14:00
Самое простое это заменить
Код

StrPerem = StrPerem & StrTemp

на
Код

StrPerem = StrPerem & Right(StrTemp, 5) & vbCrLf

Добавлено @ 14:07
Цитата(zenkaman @ 4.4.2006, 11:39 Найти цитируемый пост)
А можно ли с помощью Split разделить строку во время чтения файла и каждый элемент записать не в один StrTemp, а каждый отдельно?

Можно. Осталось только придумать как... smile Попробуй, не получится - подскажем...

Автор: zenkaman 4.4.2006, 14:55
Код

StrPerem = StrPerem & Left(StrTemp, 3) & vbCrLf


Код

StrPerem = StrPerem & Right(StrTemp, 2) & vbCrLf


Класс! Спасибо большое

Если нетрудно напишите пожалуста как сумировать числа находящиеся внутри String.

Автор: cardinal 4.4.2006, 15:00
Цитата(zenkaman @ 4.4.2006, 12:55 Найти цитируемый пост)
Если нетрудно напишите пожалуста как сумировать числа находящиеся внутри String.

А на примере?

Автор: zenkaman 4.4.2006, 15:21
Например:У меня в StrPerem 245 456 722 .Как их сложить? Надо сначало их вынести для обработки или можно складывать внутри StrPerem?

Автор: cardinal 4.4.2006, 16:06
Цитата(zenkaman @ 4.4.2006, 13:21 Найти цитируемый пост)
Надо сначало их вынести для обработки или можно складывать внутри StrPerem?

Сначала "вынести", то есть разбить строку на части (при помощи тех же Left, Mid и Right). А потом сложить см. тут:
http://forum.vingrad.ru/index.php?showtopic=15958&view=findpost&p=104816

Автор: zenkaman 4.4.2006, 21:20
smile Спасибо товарищ cardinal ,выручил smile

Автор: zenkaman 5.4.2006, 10:43
Код

Private Sub Command1_Click()
Dim StrPerem As String
Dim StrTemp As String
Open "c:\test.txt" For Input As #1
Do While Not (EOF(1))
Input #1, StrTemp
StrPerem = Left(StrTemp, 3)
Text1 = Val(Text1) + Val(StrPerem)
Loop
Close #1
End Sub


Вот прога берущая данные первого столбика в "c:\test.txt и складывающая их. Ответ вдает в TextBox1. smile Tnx again

Автор: sergejzr 5.4.2006, 10:53
Модератор: Название темы должно отражать ее суть!
Это на следующий раз smile

Автор: zenkaman 5.4.2006, 14:35
Все исправил smile Respect cardinal'у

smile Ответ на задачу:
Создать файл, содержащий сведения об отправлении поездов дальнего следования с вокзала. Каждая запись содержит поля: номер поезда, станция назначения, время отправления, время в пути, наличие билетов.
Написать программу, которая позволяет получить следующую информацию:
- время отправления поездов в город Х во временном интервале от А до В часов;
- наличие билетов на поезд с номером ХХХ.

user posted image

Код


Private Sub Command1_Click()
Dim StrPerem1, StrPerem2 As String
Dim StrTemp As String
Dim n, m As Integer
n = Text2
m = Text3
Text1 = ""
Open "test.txt" For Input As #1
Do While Not (EOF(1))
Input #1, StrTemp
StrPerem2 = Split(StrTemp)(1)
StrPerem1 = Split(StrTemp)(2)
If n <= Val(StrPerem1) And m >= Val(StrPerem1) And Text5 = StrPerem2 Then Text1 = Text1 + StrTemp
Loop
Close #1
End Sub

Private Sub Command2_Click()
Dim StrTemp As String
Dim n, m As Integer
Open "test.txt" For Input As #2
Text6 = 0
n = Val(Text4)
Do While Not (EOF(2))
Input #2, StrTemp
m = Left(StrTemp, 3)
If m = n Then Text6 = Right(StrTemp, 2)
Loop
Close #2
End Sub



Содержимое test.txt. ТХТ нужно поместить в папку вместе с Файл.ЕХЕ
Код

112 City1 10.50 3.00 06
456 City22 16.40 0.45 12
245 City333 12.35 4.10 45
678 City4444 12.00 0.50 34
331 City55555 15.40 3.20 55
958 City666666 12.55 0.35 45
664 City7777777 19.00 2.50 11

Автор: cardinal 5.4.2006, 14:58
Код

Option Explicit

Private Sub Command1_Click()
Dim StrTemp As String
Open "c:\test.txt" For Input As #1
Do While Not (EOF(1))
Input #1, StrTemp
MsgBox Split(StrTemp)(1)
Loop
Close #1
End Sub

Содержимое c:\test.txt
Код

112 City1 10.50 3.00 06
456 City21 16.40 0.45 12
245 City323 12.35 4.10 45
678 City4234 12.00 0.50 34
331 City5314 15.40 3.20 55
958 City6 12.55 0.35 45
664 City74326 19.00 2.50 11

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)