Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Математическая задачаа, Вывод списка однофамильцев 
:(
    Опции темы
cardinal
Дата 30.12.2004, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата(Voldemar2004 @ 30.12.2004, 15:54)
компилятор: "объявленный пользователем тип не определен".

Добавь scrrun.dll в Refereneces.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Voldemar2004
Дата 30.12.2004, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Библиотеку нашел, извините мое невежество, что такое references (папка)? Просто недавно перешел с C++ на VB 6 и для меня здесь все впервые. smile


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
boevik
Дата 30.12.2004, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 12
Всего: 35



В меню Project->References...
Добавляет ActiveX DLL в твой проект.


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
Voldemar2004
Дата 31.12.2004, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Все, спасибо Вам, сам доделал сегодня. Подпрога работает. Возвращусь чуть назад:
Код

While exchange = True
    exchange = True
    exchange = False
[/color]

никакой ошибки здесь нет - просто чтобы сравнить слова и выстроить их по алфавиту - их нужно сравнивать парами, например, Яр, Ар. И переменная P, нужна для того, чтобы менять местами их до тех пор, пока конструкция

Код

While exchange = True
exchange = True
exchange = False
[color=royalblue]


не станет верной. smile


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
cardinal
Дата 31.12.2004, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Код

While exchange = True
exchange = True
exchange = False

пишешь так:
Код

While exchange = True
exchange = False

и ничего при этом не изменится.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Voldemar2004
Дата 3.1.2005, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Во всех БД требуется сортировка по алфавиту (для быстрого поиска), как прикрепить
к отсортированным фамилиям еще пять строк ниже:

Петров
Иван
Иванович
3
3
3
Иванов
Иван
Петрович
3
3
3
Рамов
Вован
Иванович
3
3
3

Выстроил:

Иванов
Иван
Петрович
3
3
3
Петров
Иван
Иванович
3
3
3
Рамов
Вован
Иванович
3
3
3

просто не знаю как проще:
через такую функцию
Код

Open "c:\temp.txt" For Input As #1

Do Until EOF(1)
Line Input #1, txt
allTxt = allTxt + txt + vbCrLf
Loop
Close #1

txtText.Text = allTxt

S = txtText.Text
Z = TextClassName.Text

strTungTied = txtText.Text
aryWood = Split(strTungTied, Z)

[color=blue][/color][color=royalblue][/color][color=royalblue][/color][color=royalblue][/color][color=blue][/color][color=blue][/color][color=blue][/color][color=blue][/color]


или как-то еще, просто ради интереса. smile


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
cardinal
Дата 3.1.2005, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата(Voldemar2004 @ 3.1.2005, 17:52)
как прикрепить
к отсортированным фамилиям еще пять строк ниже

Это как? У тебя помоему только три строки ниже?
Цитата(Voldemar2004 @ 3.1.2005, 17:52)
3
3
3

smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Voldemar2004
Дата 4.1.2005, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Да не, я ж имел в виду - что первая строка это Иванов, вторая - Иван, третья - число m,
4-ая - число n, 5-ая число f.

Иванов строка 1
Иван строка 2
Иваныч строка 3
число m строка 4
число n строка 5
число f строка 6
Петров строка 7
Петр строка 8
Петрович строка 9
число L строка 10
число k строка 11
число d строка 12

ну и так далее. Главное чтобы к выстроенным в алфавитном порядке фамилиям прикрепить эти пять строк: строка 2-6, строка 8-12. Ведь юзер будет вводить их на форме не в алфавитном порядке и в больших количествах.
Добавлено @ 18:36
Ох, пардон, очепятка, вот правильно:
Да не, я ж имел в виду - что первая строка это Иванов, вторая - Иван, третья Иваныч 4-ая - число m, 5-ая - число n, 6-ая число f.

Иванов строка 1
Иван строка 2
Иваныч строка 3
число m строка 4
число n строка 5
число f строка 6
Петров строка 7
Петр строка 8
Петрович строка 9
число L строка 10
число k строка 11
число d строка 12

ну и так далее. Главное чтобы к выстроенным в алфавитном порядке фамилиям прикрепить эти пять строк: строка 2-6, строка 8-12. Ведь юзер будет вводить их на форме не в алфавитном порядке и в больших количествах.


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
cardinal
Дата 4.1.2005, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



У тебя данные в файле temp.txt сидят? Напиши сюда его содержание...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Voldemar2004
Дата 4.1.2005, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Вот его содержание: просто основную часть БД я выполнил в Access 2000, а отдельные кнопки типа "Вывод инормации об однофамильцах" в виде файла c:\temp.txt, чтоб другие могли обращаться к нему SQL-Запросами - так быстрее. В моем случае это надо сделать в VB 6.

Петров
Иван
Иванович
33
4
6
Иванов
Петр
Геннадьевич
23
4
5
Иван
Владимир
Юрьевич
10
5
5
Рамов
Николай
Игнатьевич
100
3
7
Добавлено @ 19:06
просто мне необходимо, чтобы после сортировки файл temp.txt принял такой вид:

Иван
Владимир
Юрьевич
10
5
5
Иванов
Петр
Геннадьевич
23
4
5
Петров
Иван
Иванович
33
4
6
Рамов
Николай
Игнатьевич
100
3
7


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
cardinal
Дата 4.1.2005, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Voldemar2004, короче делаем так: я даю тебе идею, а ты кумекаешь как ее реализовать smile
Вот идея:
Код

Option Explicit

Private Type member
   strI As String
   strF As String
   strO As String
   iAge As Integer
   iA As Integer
   iB As Integer
End Type

Private Sub Command1_Click()
Dim mmb_massiv(5) As member

mmb_massiv(0) = GetMember(0, filenum)
mmb_massiv(1) = GetMember(1, filenum)
mmb_massiv(2) = GetMember(2, filenum)
mmb_massiv(3) = GetMember(3, filenum)
mmb_massiv(4) = GetMember(4, filenum)

SortMMBMassiv mmb_massiv

' или просто

PutMember mmb_massiv(0), filenum
PutMember mmb_massiv(1), filenum
PutMember mmb_massiv(2), filenum
PutMember mmb_massiv(3), filenum
PutMember mmb_massiv(4), filenum

End Sub

' засовываешь такой-то mmb по алфавиту в такой то файл filenum
Private Function PutMember(mmb As member, filenum As Integer) As Integer
' ...
End Function

' вытаскиваешь такой-то mmb из такого то файла filenum
Private Function GetMember(mmb_num As Integer, filenum As Integer) As member
' ...
End Function

' Сортировка массива
Private Function SortMMBMassiv(ByRef mmb() As member)
' ...
End Function

И жизнь резко упрощается...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Voldemar2004
Дата 4.1.2005, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Попробую скумекать. Спасибо за помощь.
Тут хотел на днях ставить VB .NET - пишет, что система не удовлетворяет требованиям установки. У меня Windows 2000, SP4, RUS.


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Voldemar2004
Дата 5.1.2005, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Не очень понял, просто сделал по-своему, может, исходя из этого кто-то поможет усовершенствовать код:

Код

Dim i As Integer
Dim A(), B(), C(), D() As String
Dim fam(), E(), F() ' fam() - построчное считывание, E(), F() - числа

'вычисляем количество строк в файле

Open "c:\temp.txt" For Input As #1
Do Until EOF(1)
Line Input #1, txt
allTxt = allTxt + txt + vbCrLf
Loop
Close #1
txtSearch.Text = allTxt + vbCrLf
 Dim myParas As Variant
 myParas = Split(txtSearch, vbNewLine)
 MsgBox "Количество строк = " & ((UBound(myParas) + 1) - 2)
 S = ((UBound(myParas) + 1) - 2)
MsgBox "Количество фамилий = " & S / 6

'здесь делаем массивы динамическими

ReDim A(i)
ReDim A(1 To S / 3)

ReDim fam(i)  
ReDim fam(1 To S)

ReDim B(i)      
ReDim B(1 To S)

ReDim C(i)        
ReDim C(1 To S)

ReDim D(i)        
ReDim D(1 To S)

ReDim E(i)        
ReDim E(1 To S)

ReDim F(i)      
ReDim F(1 To S)

' открываем файл с данными и фамилиями не в алфавитном порядке

Open "c:\temp.txt" For Input As #1
i = 1
j = 1
Do Until EOF(1)
Line Input #1, txt
fam(i) = txt
i = i + 1
If j = 6 Then
j = 1
Else: j = j + 1
End If
Loop
Close #1


n = 1                  
m = 2
ot = 3
oCl = 4
o1 = 5
o2 = 6

For i = 1 To S / 6      
A(i) = fam(n)
B(i) = fam(m)
C(i) = fam(ot)
D(i) = fam(oCl)
E(i) = fam(o1)
F(i) = fam(o2)

n = n + 6              
m = m + 6
ot = ot + 6
oCl = oCl + 6
o1 = o1 + 6
o2 = o2 + 6

Next i

'Сортируем в алфавитном порядке и записываем в файл temp1.txt

P = 0
Max = UBound(A): exchange = True

While exchange = True
exchange = False


For i = 2 To Max
       If A(i - 1) > A(i) Then
               exchange = True

               P = A(i - 1)    
               A(i - 1) = A(i)  
               A(i) = P          

       End If
Next i
Wend


Open "C:\temp1.txt" For Append As #1
For i = 1 To Max
Print #1, A(i)
Next i
Close #1
[/color][color=blue]


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
cardinal
Дата 5.1.2005, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата(Voldemar2004 @ 5.1.2005, 20:10)
Не очень понял, просто сделал по-своему

Не... Никакой структуры в том, что ты написал я не вижу. Один раз сделай хорошо и пользуйся потом, а то что сделал ты это ИМХО smile

В общем я бы посоветовал тебе написать все заново по принципу, который я тебе предложил. Если есть желание понять что я там написал, то я могу поподробней расписать...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Voldemar2004
Дата 6.1.2005, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Да пожалуйста, поподробней. smile


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Страницы: (4) Все 1 [2] 3 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0577 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.