Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - ASP и VBScript

Страница: 1 |

 

  Вопрос: Удалить дубли из цикла Добавлено: 20.02.10 01:39  

Автор вопроса:  absolvo | Web-сайт: absolvo.ru | ICQ: 3208252 
Здравствуйте!
Сложилась такая задача, поправить старый скрипт на VBS, а я, если честно, помню только азы из VB, ещё со школы, и не могу решить ряд задач. Буду рад помощи, в виде пояснений, дабы просветить =)


do while not rs.EOF

line = line&i&Cost&" 06 "&m&"."&y&" "&" Интернет "&dep &crlf
Response.Write(line)

loop


В итоге в текстовый файл пишутся значения типа:
1
1
2
3
4
5
5
6
7
8
9
9

Как можно сложить дубли, тем самым и убрать их?
Спасибо.

Ответить

  Ответы Всего ответов: 12  

Номер ответа: 1
Автор ответа:
 Just



Вопросов: 4
Ответов: 330
 Профиль | | #1 Добавлено: 20.02.10 11:22
нужно в 1 цикле сделать 2 цикл проверки существующих значений
должно выглядеть наподобие этого:
  1.  
  2. Dim dictionary ' переменная массива
  3. Dim count ' указатель на запись в массиве
  4.  
  5. do while not rs.EOF
  6.  
  7. For count = 0 to count - 1
  8. if dictionary(count) = line then ...
  9. Next
  10.  
  11. loop

Ответить

Номер ответа: 2
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #2 Добавлено: 20.02.10 12:22
Достаточно проверить наличие цифры во временной строке и если её нет, то добавить эту новую цифру к строке. Т.е. внутренний цикл заменит функция Instr.
Так быстрее.

Ответить

Номер ответа: 3
Автор ответа:
 Just



Вопросов: 4
Ответов: 330
 Профиль | | #3 Добавлено: 20.02.10 12:35
2 Smith
а как быть если там не 10 значений а 1000??

и еще
ты писал про ресурсы в exe
ты не знаешь можно ли с оcx или exe так же делать?

Ответить

Номер ответа: 4
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #4 Добавлено: 20.02.10 13:22
Строка длинной меньше килобайта это много?
Это ерунда!
И полюбому будет быстрее двух циклов, но если хочешь можно придумать чтото ещё более быстрое.
В ресурсы можно уложить практически всё, что угодно и слить оттуда в файл когда нужно.

Ответить

Номер ответа: 5
Автор ответа:
 Just



Вопросов: 4
Ответов: 330
 Профиль | | #5 Добавлено: 20.02.10 13:39
подскажи плиз как мне ocx запихать а потом извлечь
и запустится ли вообще прога если использует этот ocx?

Ответить

Номер ответа: 6
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #6 Добавлено: 20.02.10 13:57
Конечно запустится!
Я щас с мобилы, позже скину пример, а пока так, на словах.
Нужно написать Sub Main() и в свойстах выбрать эту процедуру запуска.
Редактором ресурсов Вижуал Студии создать CUSTOM ресурс нужного файла.

Ответить

Номер ответа: 7
Автор ответа:
 Just



Вопросов: 4
Ответов: 330
 Профиль | | #7 Добавлено: 20.02.10 14:29
разобрался, спасибо!
  1.  
  2. Private Sub Main() ' in module
  3.       Dim B() As Byte
  4.       B = LoadResData(101, "CUSTOM")
  5.       Open App.Path & "\My.OCX" For Binary As #1
  6.          Put #1, , B()
  7.       Close #1
  8. Form1.Show
  9. End Sub


давно пытался так делать но не сообразил что через модуль это делается

Ответить

Номер ответа: 8
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #8 Добавлено: 20.02.10 14:37
  1.     Dim A() As Byte
  2.  
  3.     A = LoadResData(1, "CUSTOM")
  4.     Open Environ$("TMP") & "\" & App.EXEName & ".tmp" For Binary Access Write As 1
  5.         Put #1, , A
  6.     Close

Ответить

Номер ответа: 9
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #9 Добавлено: 20.02.10 14:39
:) опоздал

Ответить

Номер ответа: 10
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #10 Добавлено: 20.02.10 14:45
А вообще правильнее слить в тэмп, зарегать на время работы и при завершении отменить регистрацию.
Это на случай если у проги нет прав на запись в свою папку.

Ответить

Номер ответа: 11
Автор ответа:
 Just



Вопросов: 4
Ответов: 330
 Профиль | | #11 Добавлено: 20.02.10 14:51
я кстати уже подумал над этим...
а если ocx есть уже (или др версии)
я зарегю свой потом отменю и в итоге система вообще без этого ocx останется? )

Ответить

Номер ответа: 12
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #12 Добавлено: 20.02.10 14:59
Ну проверяй на наличие перед тем как сливать свой осх

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам