Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование (VB,C#,ASP,.NET): новости, советы, примеры



Выпуск # 158


http://www.kbyte.ru/

 

Новый выпуск!

Если у Вас возникнут какие-либо вопросы, замечания, пожелания или предложения, пишите, мы детально рассмотрим каждое Ваше сообщение – mailto: admin@kbyte.ru.

 

Содержание выпуска

Новости Kbyte.Ru

    Возобновлена рассылка Kbyte.Ru

    Новая RSS-лента в разделе Работа

Система ЭКСПЕРТ

    Вопрос #000347: PictureBoх

    Вопрос #000345: Проблема_с_SHAddRecentDoc

    Вопрос #000341: статистика посещений

    Вопрос #000338: Создание_ярлыка_через_WinAPI

    Вопрос #000334: Формат числа

    Вопрос #000331: как запустить файл

    Вопрос #000324: Текстовые файлы

    Вопрос #000319: вопрос

    Вопрос #000314: Проблема ResolveAssemblyReference

    Вопрос #000306: Выделение фрагмента текста. C#

Последнее на форумах

    ASP (Repeater and CheckBox)

    Компактирование базы Access в VB.NET

    Забивание данных в TreeView

    Работа сайта

    Вопрос по VBA

    Recordset и последний id-шник

    работа с FTP

    Вопрос по RecordSet продолжение...

    Динамическое меню (формируется во время выполнения программы)

    Какие сайты по программированию Вы посещаете чаще всего, и почему?

Последние статьи

    Выбор языка программирования для научных работ (2-я редакция)

    Работаем с MIME

    Visual Basic 2003/2005 .NET: Взаимодействие с Microsoft Word 2000 и выше

    Visual Basic .NET: Работа с файлами

    ASP .NET 2.0: Эталонные страницы

    Описание ошибок VB

    Горячие клавиши VB 6.0

    ASP .NET 2.0: Файл Global.asax

    Как узнать страну по IP-адресу?

    Visual Basic 6.0 - Экспорт DataReport в Microsoft Word

Интересные коды и решения

Юмор на Kbyte.Ru

 

Новости Kbyte.Ru

 

11 июля 2007 / Возобновлена рассылка Kbyte.Ru

Возобновлена рассылка новостей Kbyte.Ru через сервис Subscribe.Ru. Содержание рассылки практически не изменилось, если не считать публикации полного содержания последних топиков форума (вопросы, ответы). Подписаться на рассылку можно через E-Mail, либо через Web.
По всем вопросам и предложениям, касающихся содержания рассылки, обращайтесь к Администратору портала.

 

11 июля 2007 / Новая RSS-лента в разделе Работа

В разделе Работа для горячих Вакансий создана RSS-лента: http://kbyte.ru/rss/job.aspx?lang=ru. По умолчанию в RSS находятся 30 последних предложений о работе, однако любой желающий может самостоятельно изменить это значение, указав в адресе параметр count, например: http://kbyte.ru/rss/job.aspx?lang=ru&count=50 – rss будет содержать 50 горячих вакансий. Параметр count работает также и в других RSS-лентах нашего портала.

 

Все новости Kbyte.Ru

Наверх

 

 

Система ЭКСПЕРТ

 

Система «Эксперт» - уникальная система, которая поможет решить, если не все, то многие Ваши проблемы с программированием и разработкой! Если у Вас есть какой-либо вопрос по программированию или разработке, то Вы всегда можете задать его нашим Экспертам! При этом каких-либо особых действий от Вас не потребуется! Просто отправьте Ваш вопрос на адрес mailto:expert@kbyte.ru, в теме письма укажите тему вопроса, в тексте – сам вопрос, и все! Эксперты дадут Вам ответ в течение 12-24 часов, на тот адрес, с которого Вы отправите вопрос. Все проще простого! Никакой регистрации и заполнение бесконечных форм, никаких наездов, оскорблений и насмешек со стороны гуру, просто спросите и получите ответ ;-)


Вопрос #000347: PictureBoх

Автор вопроса: Сергей // 12.07.2007 / 20:31

Уважаемые Эксперты!

Прошу у Вас прощения, но как говорят: "Тут-то меня и понесло" - задавать
вопросы.

Возможно-ли применение при програмировании на VB6.0 в PictureBox, Image, PictureClip
и т.п. иозбражений "не признанных форматов" типа:
*.png, *.pdn, *.tiff и т.д

Если - да, то каким образом?
Заранее благодарен за ответ, Сергей

--------------------------------------
Категория: --- Visual Basic 5.0/6.0

Отвечает: Алексей Немиро // 13.07.2007 / 06:30

Здравствуйте,

Стандартными средствами это сделать не возможно. Используйте сторонние
библиотеки и компоненты. Например, http://www.chestysoft.com/ximage/default.asp:
- Add image functionality to your own applications.
- Support for BMP, GIF, JPG, PNG, PSD, PCX, TIFF and WBMP image formats. Can export to PDF.
- Import images from disk, binary data, clipboard, scanner or remote URL.
- Image manipulation functions include resize, scale, crop, rotate and flip.
- Image enhancement functions include brightness, contrast, sharpen, blur and greyscale.
- Create compound images and watermarks by merging images.
- Place text onto the image using any installed font with optional antialiasing. Support for Unicode characters.
- Perform simple image editing drawing lines and shapes with optional colour fills.
- Read and edit IPTC text (meta data) in JPEG and TIFF images.
- Read and edit Exif attributes from JPEG and TIFF files.
- Images can be exported to a remote server as an HTTP upload.
- Zoom and print functions and mouse events included.
- Royalty free distribution of the OCX file.

правда, он триальный.

--
С наилучшими пожеланиями,
Немиро Алексей

 

Вопрос #000345: Проблема_с_SHAddRecentDoc

Автор вопроса: Mark Kunst // 12.07.2007 / 18:03

Здраствуйте ...

У меня не роботает API функция "SHAddRecentDoc" , перепробовал все ...

Вот отрывок кода :

Private Declare Function SHAddToRecentDocs Lib "shell32.dll" Alias "SHAddToRecentDocs" (ByVal dwFlags As Long, ByVal dwData As String) As Long

Call SHAddToRecentDocs(2, "C:\WINDOWS\System32\logoff.exe")

Ошибки нет , но она ничего не делает , я пользовался справочниками , смотрел исходники , ни в одном коде она не работает ...

Подскажите , как ПРАВИЛЬНО ей пользоваться , покажите несколько примеров ...

Заранее спасибо!

Отвечает: Алексей Немиро // 13.07.2007 / 06:46

Здравствуйте,

Она работает, например так:
SHAddToRecentDocs 2, "C:\1.txt"
(ваш вариант тоже правильный)

проблема с exe-шками, а также с com-ами, и возможно еще какими-нибудь
форматами в Windows XP:

MSDN:
Note Microsoft® Windows® XP filters .exe files from the recently used documents list.
Although SHAddToRecentDocs will accept the path of a executable file under Windows XP, that file will not appear to the
My Recent Documents list.


--
С наилучшими пожеланиями,
Немиро Алексей

 

Вопрос #000341: статистика посещений

Автор вопроса: Коростелев А. // 11.07.2007 / 12:06

Помогите сделать статистику посещений в ASP.NET 1.x

Отвечает: Алексей Немиро // 11.07.2007 / 12:30

Здравствуйте,

Для организации подобного сервиса Вам нужно создать как минимум одну
БД, как минимум с тремя полями: id (счетчик бд), counter (куда будет
записываться количество посещений) и DateCreated (текущая дата). Хотя
можно даже и без базы обойтись (использовать, например файл), или количество полей сократить до
одного :) Это уже зависит от потребностей и возможностей ;)

Если пользователь зашел на сайт первый раз, то Вам надо просто записать ему какие-нибудь куки (Cookies), и при желании увеличить значение счетчика (в БД, или файле).
Далее, если пользователь зашел на сайт еще раз, то вам надо просто проверить наличие куков, если они есть у пользователя, то не изменять значение счетчика.
Собственно, проверку куков (Cookies) надо делать в самом начале, а уже потом либо увеличивать счетчик и записывать куки (Cookies) пользователю, либо ничего не делать.

Что касается куков (Cookies), то проверить можно так:

001:
002:
003:
004:
005:
006:
If Not Request.Cookies("Counter") Is Nothing Then
 If Not Request.Cookies("Counter")("Check") Is Nothing Then
  'юзер посещал сайт, поскольку найдены куки, тогда выходим
  Return
 End If
End If


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

Записывать куки (Cookies) тоже не сложно:

001:
002:
003:
Response.Cookies("Counter")("Check") = "1"
'срок хранения куков – 1 день
Response.Cookies("Counter").Expires = DateAdd("d", 1, Now)



ЗЫ: Звиняюсь за странный код, нет под рукой .NET 1.x, но этот должен работать на 100% :)

--
С наилучшими пожеланиями,
Немиро Алексей

 

Вопрос #000338: Создание_ярлыка_через_WinAPI

Автор вопроса: Mark Kunst // 11.07.2007 / 06:00

Здраствуйте , уважаемые эксперты ...

У меня вопрос :
Как мне на "чистом" WinAPI создать где-нибудь ярлык ?
Я пробовал пользоваться fCreateShellLink ...
1) Этой DLL у меня нет ...
2) Я нехочу пользоваться Visual Basic Runtimes.

Если вы незнаете ответ на этот вопрос ( врятли вы не знаете ) , то подскаите какая функция отвечает за эту операцию ...

Отвечает: Алексей Немиро // 11.07.2007 / 06:15

Здравствуйте,

Действительно, откуда нам знать :)

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
038:
039:
040:
041:
042:
043:
044:
045:
046:
047:
048:
049:
050:
051:
052:
053:
054:
055:
056:
057:
058:
059:
060:
061:
062:
063:
064:
065:
066:
067:
068:
069:
070:
071:
072:
073:
074:
075:
076:
077:
078:
079:
080:
081:
082:
083:
084:
085:
086:
087:
088:
089:
090:
091:
092:
093:
094:
095:
096:
097:
098:
099:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
Option Explicit

Private Declare Function api_SHAddToRecentDocs Lib "shell32.dll" Alias _
"SHAddToRecentDocs" (ByVal dwFlags As Long, ByVal dwData As String) As Long
Private Declare Function api_SHGetSpecialFolderLocation Lib "shell32.dll" Alias _
"SHGetSpecialFolderLocation" (ByVal hwndOwner As Long, _
ByVal nFolder As Long, pidl As Long) As Long
Private Declare Function api_SHGetPathFromIDList Lib "shell32.dll" Alias _
"SHGetPathFromIDList" (ByVal pidl As Long, ByVal sPath As String) As Long

Public Sub m_CreateShortcut(ScFolder As Variant, ScCaption As String, _
TargetPath As String, Optional ScParam As String, _
Optional StartFolder As String, Optional IcoNum As Integer, _
Optional IcoPath As String, Optional WindowMode As Integer)

'Константы для системных папок:
' 2 = Programs
' 7 = Startup
' 8 = RecentDocs
'16 = Desktop

'Полный путь к временному ярлыку, созданному в папке RecentDocs.
Dim Shortcut0 As String
Dim n0 As Integer 'текущая позиция считывания из файла Shortcut0.
Dim x0 As String * 1 'сюда считываются символы из файла Shortcut0.
Dim l0 As Long 'длина файла Shortcut0.
Dim Shortcut1 As String 'полный путь к создаваемому ярлыку.
Dim n1 As Integer 'позиция считывания в файле Shortcut1
Dim x1 As String * 1 'сюда считываются символы из файла Shortcut1.
Dim l1 As Long 'длина файла Shortcut1.

Dim T As Double
Dim p As Long
Dim i As Integer
Dim x As String
Dim y0 As String * 2

'проверяем параметр ScFolder - указывает целевую папку
If IsNumeric(ScFolder) Then
  ScFolder = p_GetSpecialFolder(CInt(ScFolder))
ElseIf Dir$(ScFolder, vbDirectory) = "" Then
  MsgBox "Указанная папка (" & ScFolder & ") не существует!", _
  vbCritical, "Создание ярлыка"
Exit Sub
End If

'создаем временный ярлык в папке RecentDocs, используя путь к целевой папке.
If api_SHAddToRecentDocs(2, TargetPath) > 0 Then

'определяем полный путь к созданному временному ярлыку.
Shortcut0 = p_GetSpecialFolder(8) & "\" & p_File_Folder(TargetPath) & ".lnk"

'Ждем окончания процесса создания ярлыка.
T = Now()
Do Until (Dir$(Shortcut0) <> "")
  If (Now() - T) > 0.00006 Then 'ждем 5 секунд
    If MsgBox("Создание ярлыка задерживается. Продолжить ожидание?", _
    vbQuestion + vbOKCancel, "Создание ярлыка") <> vbOK Then
      Exit Sub
    Else
      T = Now()
    End If
  End If
Loop

'Открываем созданный файл врменного ярлыка для чтения.
n0 = FreeFile()
Open Shortcut0 For Binary Access Read As #n0
'ждем, пока файл будет корректно открыт.
Do Until LOF(n0) > 0
Loop
l0 = LOF(n0)

'открываем файл целевого ярлыка для записи
Shortcut1 = ScFolder & "\" & ScCaption & ".lnk"
n1 = FreeFile()
Open Shortcut1 For Binary Access Write As #n1

'Ищем последний байт, который нужно считать
p = (l0 - 4)
y0 = ""
Do Until (p <= 0) Or (y0 = vbNullChar & vbNullChar)
  Get #n0, p, y0
  p = p - 1
Loop
l1 = p + 2

'Копируем байты
For p = 1 To l1

  Get #n0, p, x0

  Select Case p
    Case 21 'путь к иконке, параметрам и командной строке ярлыка
      i = 3
      If StartFolder <> "" Then
        i = i + 16
      End If
      If ScParam <> "" Then
        i = i + 32
      End If
      If (IcoPath <> "") Or (IcoNum > 0) Then
        i = i + 64
      End If
      x1 = Chr$(i)
    Case 57 'Индекс иконки
      x1 = Chr$(IcoNum)
    Case 61 'Оконный режим запуска
      x1 = Chr$(WindowMode)
    Case Else
      x1 = x0
  End Select

  Put #n1, p, x1

Next p

'Закрываем и удаляем файл временного ярлыка
Close #n0
Kill Shortcut0

'Добавляем иконку, параметры и командную строку в файл целевого ярлыка
x = ""
If StartFolder <> "" Then
  x = x & Chr$(Len(StartFolder)) & vbNullChar & StartFolder
End If
If ScParam <> "" Then
  x = x & Chr$(Len(ScParam)) & vbNullChar & ScParam
End If
If IcoPath = "" Then
  If IcoNum > 0 Then
    x = x & Chr$(Len(TargetPath)) & vbNullChar & TargetPath
  End If
Else
  x = x & Chr$(Len(IcoPath)) & vbNullChar & IcoPath
End If
x = x & String(4, vbNullChar)
Put #n1, l1 + 1, x

Close #n1

Else

  MsgBox "Ошибка создания ярлыка.", vbCritical, "Создание ярлыка"

End If

End Sub

Private Function p_GetSpecialFolder(CsIdl As Long) As String
'возвращаем полный путь к системной папке Windows.

Dim r As Long
Dim pidl As Long
Dim sPath As String

r = api_SHGetSpecialFolderLocation(Application.hWndAccessApp, CsIdl, pidl)

If r = 0 Then

sPath = Space$(260)
r = api_SHGetPathFromIDList(ByVal pidl, ByVal sPath)
If r Then
p_GetSpecialFolder = Left$(sPath, InStr(sPath, Chr$(0)) - 1)
End If

End If

End Function

Private Function p_File_Folder(FullPath As String) As String
'возвращает короткое имя файла FullPath.

Dim i As Integer

p_File_Folder = FullPath
i = Len(FullPath)
Do Until i = 0
  If Mid$(FullPath, i, 1) = "\" Then
    p_File_Folder = Mid$(FullPath, i + 1)
    i = 0
  Else
    i = i - 1
  End If
Loop

End Function




--
С наилучшими пожеланиями,
Немиро Алексей

 

Вопрос #000334: Формат числа

Автор вопроса: Тарас // 08.07.2007 / 01:19

У меня такой вопросик возник
есть число с павающей точкой, я использую тип double
если в результате вычилсения будит число 0,02333
оно мне почимуто выводит просто 0
как застравить его не скораивать число?
я в в свойствах надписи в dataformat ставил числовой тип... но не помоголо
С уважением Тарас))

--------------------------------------
Категория: --- Visual Basic 5.0/6.0

Отвечает: Алексей Немиро // 08.07.2007 / 03:47

Здравствуйте, Тарас!

Проблема в типах данных. Если переменная или поле бд, которому
присваивается значение типа Double, имеет тип Integer, то это значение
будет округлено. Насколько я понял из вопроса, речь идет именно о БД
MS Access, если так, то необходимо установить тип
Числовой, а затем указать размер поля = Двойное с плавающей точкой
(см. в свойствах поля, обычно внизу под списком полей в конструкторе)

--
С наилучшими пожеланиями,
Немиро Алексей

 

Вопрос #000331: как запустить файл

Автор вопроса: Taras // 07.07.2007 / 17:50

Как при помощи кнопки запустить файл например с:\1.exe ?


--------------------------------------
Категория: --- Visual Basic 5.0/6.0

Отвечает: Алексей Немиро // 08.07.2007 / 03:40

Здравствуйте,

001:
Shell "с:\1.exe"


--
С наилучшими пожеланиями,
Немиро Алексей

 

Вопрос #000324: Текстовые файлы

Автор вопроса: Тарас // 03.07.2007 / 17:26

У меня такой вопрос:
я создал форму на которой поместил TextBox и кнопку при нажатии на которую открывается текстовый файл в котором написано следущее:
123
Хорошо
все

При нажатии на кнопку отоброжается в текстовом поле следущее:
123||Хорошо||все||
как избавится от этих палочок?


--------------------------------------
Категория: --- Visual Basic 5.0/6.0

Отвечает: Алексей Немиро // 04.07.2007 / 04:04

Здравствуйте,

«Палочки» - это символы перевода каретки :)
Chr(13) & Chr(10) или просто vbCrLf.
Если Вам нужно убрать данные символы, то Вы можете заменить их, например на пробел.

001:
TextBox1.Text = Replace(TextBox1.Text, vbCrLf, " ")


Если Вы хотите сделать многострочное текстовое поле, то установите
свойство Multiline = True, для того чтобы отобразить полосы
прокрутки у текстового поля, установите свойство ScrollBars.


--
С наилучшими пожеланиями,
Немиро Алексей

 

Вопрос #000319: вопрос

Автор вопроса: Бизнес класс // 01.07.2007 / 11:58

Здравствуйте!
Читал Ваши сообщения на одном из форумов по поводу вируса TrojanProxy.Dlena.
Вы писали, что избавились от него. Подскажите, пожалуйста, как? Недавно и у меня эта зараза обнаружилась.
Вик

Команда "Бизнес-класс" желает Вам удачи!

Отвечает: Алексей Немиро // 01.07.2007 / 12:05

Здравствуйте,

С подобной заразой можно быстро справиться из другой системы, или с другого
жесткого диска любым антивирусом. Из зараженной системы вывести данный
вирус сложновато.


--
С наилучшими пожеланиями,
Немиро Алексей

 

Вопрос #000314: Проблема ResolveAssemblyReference

Автор вопроса: "Greg" // 27.06.2007 / 20:33

Непонятные ошибки появились, после установки VS2005 на Висту, появляются в
любом проекте, на любом языке.
Удалил VS2005, установил SharpDevelop 2.1, те же ошибки.
Пожалуйста, помогите. Это может случится с каждым.

Вот ошибки, при компилировинии на C#:

The "ResolveAssemblyReference" task could not be initialized with its input
parameters. (MSB4063) -
C:\Windows\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.targets:1315,9
и
The "AllowedRelatedFileExtensions" parameter is not supported by the
"ResolveAssemblyReference" task. Verify the parameter exists on the task,
and it is a settable public instance property. (MSB4064) -
C:\Windows\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.targets:1323,13

Буду бесконечно благодарен.

Отвечает: Алексей Немиро // 28.06.2007 / 03:26

Здравствуйте,

Вероятно у Вас старая версия Visual Studio. Скачайте сервис пак, либо
установите Visual Studio "Orcas"

Для справки:
Windows Vista не будет поддерживать старые версии Visual Studio, поэтому многим разработчика придется переключиться на написание приложений только для вышедшего обновления программы Visual Studio 2005, заявил сегодня представитель Microsoft. В своем блоге вице-президент отдела разработок Microsoft уточнил, что совместимые с Vista приложения будет невозможно использовать в Visual Studio 2002 и Visual Studio 2003.
Данное объявление было сделано по случаю выпуска во вторник Service Pack 1 для Visual Studio 2005, который сейчас доступен на портале Microsoft Connect, предназначенном для разработчиков. Джей Рокс, менеджер отдела разработок Visual Studio, пояснил, что такие функции Vista, как Windows Presentation Foundation, Aero и Glass не могут обслуживаться на должном уровне прошлыми разработками. "Для создания новых возможностей нужны новые инструменты. Однако разработчики могут продолжать использовать прежние версии Visual Studio с помощью Windows XP", - сказал Рокс.
Microsoft предупреждает, что не стоит ждать от SP1 безошибочной работы с Vista, для решения определенных проблем пока лучше использовать XP как основную платформу. Выпуск версии SP1 для пользователей запланирован после выхода Vista.



--
С наилучшими пожеланиями,
Немиро Алексей

 

Вопрос #000306: Выделение фрагмента текста. C#

Автор вопроса: "Greg" // 20.06.2007 / 17:39

После проверки regex-ом на наличие совпадений [if
(System.Text.RegularExpressions.Regex.IsMatch(s, ss))]
Нужно выделить в textbox-е фрагмент совпадения, а так как текст
многострочный требуется так же и передвинуть ползунок к этому фрагменту.
Дайте, пожалуйста, не наставление, а код.

Отвечает: EROS // 20.06.2007 / 21:28

Здравствуйте, Greg.

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
038:
039:
040:
041:
042:
043:
044:
045:
046:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;

namespace KByte.Ru
{
  public partial class frmTest : Form
  {
    /// <summary>
    /// VS 2005 (C#)
    /// Find & Select substring (Regular Expression)
    /// </summary>
    /// <remarks>EROS, eros@fromru.com</remarks>
    public frmTest()
    {
      InitializeComponent();
      textBox1.Multiline = true;
      // Load test text
      textBox1.Text = Properties.Resources.Html;
    }

    private void frmTest_Load(object sender, EventArgs e)
    {
      // Search Html color code (Example #C0FFE1 etc ...)
      Regex regEx = new Regex(@"\#[a-fA-F\d]{6}");
      if (regEx.IsMatch(textBox1.Text))
      {
       MatchCollection matches = regEx.Matches(textBox1.Text);
        
        // Show first result
       showMatch(matches[0]);
      }
    }

    private void showMatch(Match match)
    {
      textBox1.SelectionStart = match.Captures[0].Index;
      textBox1.SelectionLength = match.Captures[0].Length;
    }
  }
}


--
С уважением,
EROS

 


Чтобы задать Ваш вопрос, отправьте его на адрес expert@kbyte.ru

Раздел Эксперт на сайте Kbyte.Ru

Наверх

 

 

Последнее на форумах

ASP (Repeater and CheckBox) | Автор: Bille Gates
Добавлено: 13.07.2007 / 22:47 | ответов: 0 | просмотров: 1

Помогите... умираю... не знаю который раз сталкиваюсь с проблемой, и ниразу не нашел решения... только обходные пути...
Задача:
сделать нечто вроде интернет магазина, а точнее только 1 страницу, с выбором товаров, т.е. есть список товаров, а рядом галки(всё это реализованно с помощью баз и repeater), мне нужно определять, какие галки нажаты в момент нажатия пользователем кнопки(допустим добавить в корзину)... Думаю я понятно объяснил... Общался с EROSом, он посоветовал использовать коллекции... но точно как это делать ни я ни он не поняли(по крайней мере я точно не понял) мне кажется это что-то вроде голосований на kbyte т.е. выбрал ответы, поставил галки, и всё засчиталось в базу данных... вот нечто такое и надо...
Всем спасибо за внимание! :)

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Компактирование базы Access в VB.NET | Автор: Korkinet
Добавлено: 12.07.2007 / 19:16 | ответов: 1 | просмотров: 7

Собственно в этом и вопрос. Как мне это сделать, то что в DAO делалось с помощью функции CompactDatabase?

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: EROS
Добавлено:13.07.2007 / 09:53
Боюсь огорчить Вас, но никак... Я года 3 назад занимался этой проблемой, но удалось только выяснить то, что в NET нету подобных средств.. Единственный выход, это по прежнему использовать для этих целей DAO.. Как не прискорбно но прийдется ее с собой таскать.. Лично я предпочел отказаться (только по этой причине) от Access и перешел на SqlExpress

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Забивание данных в TreeView | Автор: pasha
Добавлено: 12.07.2007 / 12:28 | ответов: 3 | просмотров: 11

Проблема такая: При вызове функции IndexOf (nodName) значение не возваращяется (проверял точками останова)
tw = TreeView, в нём корни от "А" до "Я" (по алфавиту
код
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
038:
039:
040:
041:
042:
043:
044:
045:
046:
047:
048:
049:
050:
051:
052:
053:
054:
055:
056:
057:
058:
059:
060:
061:
062:
063:
064:
065:
066:
067:
068:
069:
070:
071:
072:
073:
074:
075:
076:
077:
078:
Public Sub AddBook(ByVal name As String, ByVal author As String, ByVal publicYear As String, ByVal ISBN As String, ByVal Annotation As String)

    Dim nodName As New TreeNode(name, 1, 6)
    nodName.Tag = "Name: "
    Dim x As String
    Dim frm As New frmCreate
    x = frm.Symbol
    Dim y As Integer
    Dim fornod As New TreeNode
    Dim endnod As New TreeNode
    For Each x In tw.Nodes
      If fornod.Text = x Then
        endnod = fornod
        Exit For
      End If
    Next
    y = tw.Nodes.IndexOf(endnod)
    tw.Nodes(y).Nodes.Add(nodName)
    Dim bookindex As Integer = tw.Nodes(y).Nodes.IndexOf(nodName)
    Dim nodAuthor As New TreeNode(author, 2, 2)
    nodAuthor.Tag = "Author: "
    tw.Nodes(y).Nodes(bookindex).Nodes.Add(nodAuthor)
    Dim nodYear As New TreeNode(publicYear, 3, 3)
    nodYear.Tag = "PublicYear: "
    tw.Nodes(y).Nodes(bookindex).Nodes.Add(nodYear)
    tw.Nodes(y).Nodes(bookindex).Nodes.Add(ISBN)
    Dim nodAnn As New TreeNode(Annotation, 6, 6)
    tw.Nodes(y).Nodes(bookindex).Nodes.Add(nodAnn)
err:
    Msg()
'Msg -- это обычный MsgBox с ошибкой

  End Sub
'Функция "Symbol"
Public Function Symbol() As String
    If cbCpec.SelectedIndex = 0 Then
      Select Case cbGroup.SelectedIndex
        Case 0
          Return "А"
        Case 1
          Return "Б"
        Case 2
          Return "В"
        Case 3
          Return "Г"
        Case 4
          Return "Д"
        Case 5
          Return "Е-Ё-Ж"
        Case 6
          Return "З"
        Case 7
          Return "И"
        Case 8
          Return "К"
        Case 9
          Return "Л"
        Case 10
          Return "М"
        Case 11
          Return "Н"
        Case 12
          Return "О"
        Case 13
          Return "П"
        Case 14
          Return "Р"
        Case 15
          Return "C"
        Case 16
          Return "Т"
        Case 17
          Return "У-Я"
      End Select
    End If
  End Function

Colorized by: Eros.CodeSyntaxColor Engine

В ymbole eсё совпадает со свойствам Text орней дерава.
Спасибо

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: Edlin
Добавлено:13.07.2007 / 09:31
Честно говоря, очень странный код. Не думал, что цикл в строке 11 будет работать. tw.Nodes возвращает коллекцию TreeNode, а не String, как объявлена переменная x. Ну да ладно, тебе виднее.

Суть проблемы в том, что ты пытаешься найти в коллекции TreeNode объекты, там не содержащиеся. Так в строках 9 и 10 ты создаешь 2 новых объекта TreeNode: fornod и endnod. Эти объекты не содержатся в коллекции tw.Nodes. Даже если в цикле и осуществляется присваивание endnod = fornod, это ничего не меняет. По завершению цикла endnod ссылается на объект, которого нет в tw.Nodes. Поэтому IndexOf и не возвращает позицию.

Я все сказал. Честь имею.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: pasha
Добавлено:13.07.2007 / 23:04
Пордон
x = treenode

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 3 | Автор: pasha
Добавлено:13.07.2007 / 23:09
Что с головой..
For Each fornod In tw.Nodes
...
Next

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Работа сайта | Автор: Алексей
Добавлено: 11.07.2007 / 10:34 | ответов: 1 | просмотров: 14

У кого возникают проблемы с потерей Session, или стоит галка "запомнить меня", а при следующем входе сайт вас не авторизирует, просьба отметиться в этом топике.

А также всем, кому приходят письма в "кривой" кодировке, тоже просьба сообщить об этом в этот топик.

Спасибо.

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: LeX
Добавлено:11.07.2007 / 14:32
У меня проблемы с автоматической авторизацией (галочка стоит). Не знаю из-за чего это :(

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Вопрос по VBA | Автор: Igor
Добавлено: 11.07.2007 / 10:15 | ответов: 2 | просмотров: 11

Здравствуйте! Помогите с VBA новичку!
вопрос в следующем:
надо сделать, чтобы при открытии книги в Excel появлялась кнопка, при нажатии на которую
открывалось окно открытия файла, где выбирался *.txt файл и втягивался в Excel, я использую:
001:
002:
003:
Sub my()
Application.Dialogs(xlDialogOpen).Show "*.txt"
End Sub

Вопрос: как сделать, чтоб при открытии книги сразу появлялась кнопка, и текстовый документ который втягивался в Excel
становился со второй строки таблицы?

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: Edlin
Добавлено:12.07.2007 / 10:47
Открой свой xls-файл в Excel. Нажми Alt-F11. Появится редактор Microsoft Visual Basic. Нажми View \ Project Explorer. Появится или будет выделено окно проекта. В древовидном списке в этом окне выбери VBAProject(...) \ Microsoft Excel Objects \ ThisBook. Щелкни правой кнопкой мыши на ThisBook и выбери View Code из появившегося меню. Появится редактор кода. В нем есть 2 выпадающих списка. В первом выбери Workbook, а во втором - Open. Появится заготовка метода, который будет выполняться при открытии книги.

В эту заготовку вставляешь код для появления кнопки:

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
Dim connectButton As CommandBarButton
  Set connectButton = Application.CommandBars("Standard").FindControl(Type:=msoControlButton, Tag:="Open text file")
  If connectButton Is Nothing Then
    Set connectButton = Application.CommandBars("Standard").Controls.Add(Type:=msoControlButton, Temporary:=True)
    connectButton.Caption = "Open text file"
    connectButton.DescriptionText = "Open text file"
    connectButton.TooltipText = "Open text file"
    connectButton.Tag = "Open text file"
    connectButton.OnAction = "OpenTextFileSub"
  End If

Colorized by: Eros.CodeSyntaxColor Engine


Далее создаешь эту самую процедуру OpenTextFileSub

001:
002:
003:
004:
005:
Sub OpenTextFileSub()
  Application.Dialogs(xlDialogOpen).Show "*.txt"
End Sub

Colorized by: Eros.CodeSyntaxColor Engine


По поводу же места вставки могу сказать только следующее. Или ты отказываешься от использования Application.Dialogs и делаешь вставку вручную, или используешь Application.Dialogs и после вставки добавляешь еще одну строку перед первой.

Я все сказал. Честь имею.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: Igor
Добавлено:12.07.2007 / 15:20
Спасибо за ответ, все работает просто замечательно!

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Recordset и последний id-шник | Автор: Dark_Blast
Добавлено: 10.07.2007 / 11:15 | ответов: 6 | просмотров: 12

Добавляю запись в таблицу через recordset, в которой есть ключевое поле identity increment:
001:
002:
003:
004:
005:
rs.AddNew
rs("Name") = "Вася Пупкин"
rs("Firm") = "ЧЛ Вася Пупкин"
rs("Phone") = "555-5555"
rs.Update


как можно после такого способа добавления записи в таблицу узнать последний уникальный номер записи?

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: Алексей
Добавлено:10.07.2007 / 12:43
после RS.Update нужно сделать RS.MoveLast

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: pasha
Добавлено:10.07.2007 / 12:46
Если речь идёт о VB6, то насколько знаю, можно пользоваться ASCII INI-файлами. В VB6 не работал, но где-то здесь это должно быть: www.kbyte.ru/Unicode?lang=ru

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 3 | Автор: Dark_Blast
Добавлено:10.07.2007 / 13:02
после RS.Update нужно сделать RS.MoveLast

так не подходит, потому что в тот момент пока рекордсет будет переходить на последнюю запись может быть добавлена новая запись, тогда я получу не тот id-шник...

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 4 | Автор: Dark_Blast
Добавлено:10.07.2007 / 13:04
Если речь идёт о VB6, то насколько знаю, можно пользоваться ASCII INI-файлами. В VB6 не работал, но где-то здесь это должно быть: www.kbyte.ru/Unicode?lang=ru

речь идет об ASP VBScript

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 5 | Автор: Алексей
Добавлено:10.07.2007 / 13:09
Тогда только один выход - получать добавленные данные и смотреть идишник. Т.е. запрос должен содержать все добавленные данные, один к одному:
Name = "Вася Пупкин"
Firm = "ЧЛ Вася Пупкин"
Phone = "555-5555"

Еще неплохо бы дату добавить, причем загонять ее в переменную:
001:
002:
003:
004:
005:
Dim bDateCreated
bDateCreated = Now
RS("DateCreated") = bDateCreated

Colorized by: Eros.CodeSyntaxColor Engine

тогда вероятность совпадений будет минимальная.

Хотя в случае с MoveLast, все также должно работать правильно, покрайней мере раньше, когда я работал с классическим ASP, я делал именно так, и никаких проблем с этим не возникало..

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 6 | Автор: Dark_Blast
Добавлено:10.07.2007 / 13:30
спасибо

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


работа с FTP | Автор: Misha63
Добавлено: 09.07.2007 / 16:04 | ответов: 4 | просмотров: 22

Вопрос такого характера, как отправить файлы на ФТП сервер, при этом важно гарантированная отправка, необходимо сравнение, или, что-то подобное.
Часть проги написал по формированию файлов, а с ФТП проблема. Вообще может это лучше делать не в VB NET а использовать готовую прогу.

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: Bille Gates
Добавлено:09.07.2007 / 17:10
Используйте QuteFTP его можно найти на форуме в разделе download... для удобства воспользуйтесь разделом поиск по сайту... хотя я использовал и VB.net, проблем с ним ещё не возникало...

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: Алексей
Добавлено:09.07.2007 / 17:59
2Misha63:
А чем ответ Edlin-а не устраивает http://kbyte.ru/Forum/Show.aspx?id=3141&lang=ru ?
Если подобное решение не устравивает, то видимо путь один - юзать соккеты и учить спецификацию протокола FTP..

2Bille Gates:
Используйте QuteFTP

Cute ;) Еще есть TotalCommander, но лично мне больше нравится CuteFtp.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 3 | Автор: Misha63
Добавлено:09.07.2007 / 21:40
Да если-бы сам файлы отправлял, то подошел любой ФТП клиент, но отправлять будут не продвинутые пользователи, надо, чтоб одной кнопкой, и еще желательно подтверждение доставки файла.
На мыло вроде не так удобно, ФТП надежнее. Буду учить матчасть. Я просто по ФТП особо ни чего не встречал в примерах.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 4 | Автор: Алексей
Добавлено:10.07.2007 / 04:01
Ну в CuteFTP все просто, помоему любой справится, главное настроить его. Максимум юзеру придется выполнить три-четыре операции (1. дблклик по соединению, 2. выбор нужного файла, 3. перетаскивание файла (Drag-And-Drop) на FTP)..

Примеры... вот пример:
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
038:
039:
040:
041:
042:
043:
044:
045:
046:
047:
048:
049:
050:
051:
052:
053:
054:
055:
056:
057:
058:
059:
060:
061:
062:
063:
064:
065:
066:
067:
068:
069:
070:
071:
072:
073:
074:
075:
076:
077:
078:
079:
080:
081:
082:
083:
084:
085:
086:
087:
088:
089:
090:
091:
092:
093:
094:
095:
096:
097:
098:
099:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
'---------------------------------------------------------------------
' This file is part of the Microsoft .NET Framework SDK Code Samples.
'
' Copyright (C) Microsoft Corporation. All rights reserved.
'
'This source code is intended only as a supplement to Microsoft
'Development Tools and/or on-line documentation. See these other
'materials for detailed information regarding Microsoft code samples.
'
'THIS CODE AND INFORMATION ARE PROVIDED AS IS WITHOUT WARRANTY OF ANY
'KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
'IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
'PARTICULAR PURPOSE.
'---------------------------------------------------------------------

Imports System.Net
Imports System.IO

Module FtpSample

  Sub Main(ByVal args() As String)
    If args.Length = 0 OrElse args(0).Equals("/?") Then
      DisplayUsage()
    ElseIf args.Length = 1 Then
      Download(args(0))
    ElseIf args.Length = 2 Then
      If args(0).Equals("/list") Then
        List(args(1))
      Else
        Upload(args(0), args(1))
      End If
    Else
      Console.WriteLine("Unrecognized argument.")
    End If
  End Sub

  Private Sub DisplayUsage()
    Console.WriteLine("USAGE:")
    Console.WriteLine("  FtpSample [/? | <FTP download URL> | <local file>")
    Console.WriteLine("        <FTP upload URL> | /list <FTP list URL>]")
    Console.WriteLine()
    Console.WriteLine("where")
    Console.WriteLine("  FTP download URL  URL of a file to download from an FTP server.")
    Console.WriteLine("  FTP upload URL   Location on a FTP server to upload a file to.")
    Console.WriteLine("  FTP list URL    Location on a FTP server to list the contents of.")
    Console.WriteLine("  local file     A local file to upload to an FTP server.")
    Console.WriteLine()
    Console.WriteLine("  Options:")
    Console.WriteLine("    /?       Display this help message.")
    Console.WriteLine("    /list     Specifies the list command.")
    Console.WriteLine()
    Console.WriteLine("EXAMPLES:")
    Console.WriteLine("  Download a file  FtpSample ftp://myserver/download.txt")
    Console.WriteLine("  Upload a file   FtpSample upload.txt ftp://myserver/upload.txt")
  End Sub

  Private Sub Download(ByVal downloadUrl As String)
    Dim responseStream As Stream = Nothing
    Dim fileStream As FileStream = Nothing
    Dim reader As StreamReader = Nothing
    Try
      Dim downloadRequest As FtpWebRequest = _
        WebRequest.Create(downloadUrl)
      Dim downloadResponse As FtpWebResponse = _
        downloadRequest.GetResponse()
      responseStream = downloadResponse.GetResponseStream()

      Dim fileName As String = _
        Path.GetFileName(downloadRequest.RequestUri.AbsolutePath)

      If fileName.Length = 0 Then
        reader = New StreamReader(responseStream)
        Console.WriteLine(reader.ReadToEnd())
      Else
        fileStream = File.Create(fileName)
        Dim buffer(1024) As Byte
        Dim bytesRead As Integer
        While True
          bytesRead = responseStream.Read(buffer, 0, buffer.Length)
          If bytesRead = 0 Then
            Exit While
          End If
          fileStream.Write(buffer, 0, bytesRead)
        End While
      End If
      Console.WriteLine("Download complete.")
    Catch ex As UriFormatException
      Console.WriteLine(ex.Message)
    Catch ex As WebException
      Console.WriteLine(ex.Message)
    Catch ex As IOException
      Console.WriteLine(ex.Message)
    Finally
      If reader IsNot Nothing Then
        reader.Close()
      ElseIf responseStream IsNot Nothing Then
        responseStream.Close()
      End If
      If fileStream IsNot Nothing Then
        fileStream.Close()
      End If
    End Try
  End Sub

  Private Sub Upload(ByVal fileName As String, ByVal uploadUrl As String)
    Dim requestStream As Stream = Nothing
    Dim fileStream As FileStream = Nothing
    Dim uploadResponse As FtpWebResponse = Nothing
    Try
      Dim uploadRequest As FtpWebRequest = WebRequest.Create(uploadUrl)
      uploadRequest.Method = WebRequestMethods.Ftp.UploadFile

      ' UploadFile is not supported through an Http proxy
      ' so we disable the proxy for this request.
      uploadRequest.Proxy = Nothing

      requestStream = uploadRequest.GetRequestStream()
      fileStream = File.Open(fileName, FileMode.Open)

      Dim buffer(1024) As Byte
      Dim bytesRead As Integer
      While True
        bytesRead = fileStream.Read(buffer, 0, buffer.Length)
        If bytesRead = 0 Then
          Exit While
        End If
        requestStream.Write(buffer, 0, bytesRead)
      End While

      ' The request stream must be closed before getting the response.
      requestStream.Close()

      uploadResponse = uploadRequest.GetResponse()
      Console.WriteLine("Upload complete.")
    Catch ex As UriFormatException
      Console.WriteLine(ex.Message)
    Catch ex As IOException
      Console.WriteLine(ex.Message)
    Catch ex As WebException
      Console.WriteLine(ex.Message)
    Finally
      If uploadResponse IsNot Nothing Then
        uploadResponse.Close()
      End If
      If fileStream IsNot Nothing Then
        fileStream.Close()
      End If
      If requestStream IsNot Nothing Then
        requestStream.Close()
      End If
    End Try
  End Sub

  Private Sub List(ByVal listUrl As String)
    Dim reader As StreamReader = Nothing
    Try
      Dim listRequest As FtpWebRequest = WebRequest.Create(listUrl)
      listRequest.Method = WebRequestMethods.Ftp.ListDirectoryDetails
      Dim listResponse As FtpWebResponse = listRequest.GetResponse()
      reader = New StreamReader(listResponse.GetResponseStream())
      Console.WriteLine(reader.ReadToEnd())
      Console.WriteLine("List complete.")
    Catch ex As UriFormatException
      Console.WriteLine(ex.Message)
    Catch ex As WebException
      Console.WriteLine(ex.Message)
    Finally
      If reader IsNot Nothing Then
        reader.Close()
      End If
    End Try
  End Sub

End Module

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Вопрос по RecordSet продолжение... | Автор: Kolya007
Добавлено: 09.07.2007 / 15:40 | ответов: 17 | просмотров: 27

Вообще-то они мне нужны как массивы данных, просто пока несообразил как это сделать...))

001:
ReDim Preserve массив(ubound(массив)) 'массив - переменная


Это условие по которому выводиться содержимое БД... id_n прямая ссылка на новость должна выглядеть как "0_6346346" к примеру, иначе проверяем указан ли раздел id_s новостей, если раздел указан, то выводим все новости имеющиеся в этом разделе, иначе выводим сообщение "Выберите раздел". Да он работает и по моему именно его работа вызывает эту ошибку, я бы его убрал, но незнаю чем заменить...))

Никогда в классическом ASP, да и не в каком VB-шном языке не видел подобной конструкции. Это уже что-то из сишных языков, и то какой-то не такое :)
Возможно фукнция IIf поможет (см. в справочнике по VB 6.0 на нашем сайте)

Алексей, мне надо получить данные из адресной строки браузера(IE, Oera и т.д.). Сверить её и при необходимости принудительно изменить(програмно)...))

т.е ты хочешь чтобы юзеру загрузилась страница, а потом на стороне клиента подменить урл? Если такое и возможно, то только в IE :) А так, надо либо редиректить, например на клиенте window.location, либо на стороне сервера проверять, хотя не понятно зачем это делать на стороне клиента, подобные вещи делаются на сервере. Для проверки url используй Request. Для редиректа - Response.Redirect(url)

Как мне вывести определенные данные из БД?..

SQL - ом :) выбирай нужные данные запросом.

ЗЫ: топки переклинило, пока админки для редактирования нет (только для удаления), посему исправить не могу :( Если что, создай новую тему.

Можешь выложить пример для
001:
ReDim Preserve массив(ubound(массив)) 'массив - переменная


т.е ты хочешь чтобы юзеру загрузилась страница, а потом на стороне клиента подменить урл? Если такое и возможно, то только в IE :) А так, надо либо редиректить, например на клиенте window.location, либо на стороне сервера проверять, хотя не понятно зачем это делать на стороне клиента, подобные вещи делаются на сервере. Для проверки url используй Request. Для редиректа - Response.Redirect(url)

Нет, я хочу чтобы при загрузке страницы (а лучше до того как она загрузится), прошла проверка url и если url неверный, т.е. не содержит id_n и id_s, то сделала его верным, т.е. содержащим id_n и id_s со зачениями по умолчанию...
По возможности пример кода...))

Как мне вывести определенные данные из БД?..

SQL - ом :) выбирай нужные данные запросом.

А через RecordSet отфильтровать невозможно? Ведь именно
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
Set Conn2 = Server.CreateObject("ADODB.Connection")
DBpath2 = Server.MapPath("./db/db.mdb")
Conn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBpath2
Set RS2 = Server.CreateObject("ADODB.Recordset")
strSQL2 = "SELECT * FROM news WHERE id_news='" & id_n & "'"
RS2.Open strSQL2, Conn2
If RS2.EOF = true Or RS2.BOF = true Then
Response.Write("<p align='center'><br>Раздел пуст<br></p>")
Else
Do While Not RS2.EOF
If RS2.EOF = true Or RS2.BOF = true Then Exit Do
Response.Write("RS2")
RS2.MoveNext
Loop
End If

Вызвало ошибку
Тип ошибки:
Ошибка выполнения Microsoft VBScript (0x800A01A8)
Требуется объект: ''
/news/news.asp, line 132

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: Алексей
Добавлено:09.07.2007 / 17:45
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
Dim arr()

For i = 0 To 100
If IsNothing(arr) Then
ReDim arr(0)
arr(0) = "данные " & i
Else
ReDim Preserve arr(UBound(arr))
arr(UBound(arr) - 1) = "данные " & i
End If
Next i


Нет, я хочу чтобы при загрузке страницы (а лучше до того как она загрузится), прошла проверка url и если url неверный, т.е. не содержит id_n и id_s, то сделала его верным, т.е. содержащим id_n и id_s со зачениями по умолчанию...
По возможности пример кода...))

На клиенте вообще ничего делать не надо:

001:
002:
003:
If Request("id_n") = "1" Then
'делаем что-то, если в адресе параметр id_n = 1
End If


я уже не помню, что возратит Request в ASP, если параметр отсутсвует, но скорей всего пустую строку, тогда:

001:
002:
003:
If Request("id_n") = "" Or Request("id_s") = "" Then
Response.Redirect(правильный url)
End If


А через RecordSet отфильтровать невозможно?

возможно. Но зачем? Представь, ты заставляешь сервер возвратить тебе все данные из БД, а потом их фильтруешь, памяти тратится больше. А так ты получешь только нужные данные, и кода писать придется меньше, и ресурсы с экономишь ;)

id_news - это число? Если да, то кавычки не нужны.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: Kolya007
Добавлено:09.07.2007 / 19:12
я уже не помню, что возратит Request в ASP, если параметр отсутсвует, но скорей всего пустую строку, тогда:
001:
002:
003:
If Request("id_n") = "" Or Request("id_s") = "" Then
Response.Redirect(правильный url)
End If

url прописывать через http:// или ./news/news.asp...

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
038:
039:
040:
041:
042:
043:
044:
045:
046:
047:
048:
049:
050:
051:
052:
053:
054:
<%
If Request("id_n") = "" Or Request("id_s") = "" Then
Response.Redirect()
End If
Dim i
Dim Conn
Dim DBpath
Dim RS
Dim strSQL
Dim Conn1
Dim RS1
Dim strSQL1
Dim Conn2
Dim RS2
Dim strSQL2
Dim id_s
Dim id_n
Dim sections
Dim news
Set Conn = Server.CreateObject("ADODB.Connection")
DBpath = Server.MapPath("./db/db.mdb")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBpath
Set RS = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM news"
RS.Open strSQL, Conn
If RS.EOF = true Or RS.BOF = true Then
Response.Write("<p align='center'><br>БД пуста<br></p>")
Else
Do While Not RS.EOF
If RS.EOF = true Or RS.BOF = true Then Exit Do
For i = 0 To n
If IsNothing(sections) Then
ReDim sections(0)
sections(0) = RS.Fields("news_section") & i
Else
ReDim Preserve sections(UBound(sections))
sections(UBound(sections) - 1) = RS.Fields("news_section") & i
End If
Next i
For i = 0 To n
If IsNothing(news) Then
ReDim news(0)
news(0) = RS.Fields("id_news") & i
Else
ReDim Preserve news(UBound(news))
news(UBound(news) - 1) = RS.Fields("id_news") & i
End If
Next i
RS.MoveNext
Loop
End If
RS.Close
Conn.Close
%>

Тип ошибки:
Ошибка компиляции Microsoft VBScript (0x800A0401)
Предполагается наличие окончания инструкции
/news/news.asp, line 39, column 5
Next i
----^

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 3 | Автор: Алексей
Добавлено:10.07.2007 / 03:33
url прописывать через http:// или ./news/news.asp...

должны работать оба варианта

Тип ошибки:

хз, код вроде правильный, если не считать редиректа в третей строке.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 4 | Автор: Kolya007
Добавлено:10.07.2007 / 04:41
Тогда я проще заменю For Next на Do While Loор...
Потом скажу получится или нет...))

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 5 | Автор: Kolya007
Добавлено:11.07.2007 / 00:42
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
038:
039:
040:
041:
042:
043:
044:
045:
046:
047:
048:
049:
050:
051:
052:
053:
054:
055:
If Request("id_n") = "" Or Request("id_s") = "" Then
Response.Redirect("http://localhost/news/news.asp?id_n=0&id_s=0")
End If
Dim i
Dim Conn
Dim DBpath
Dim RS
Dim strSQL
Dim Conn1
Dim RS1
Dim strSQL1
Dim Conn2
Dim RS2
Dim strSQL2
Dim id_s
Dim id_n
Dim sections
Dim news
Set Conn = Server.CreateObject("ADODB.Connection")
DBpath = Server.MapPath("./db/db.mdb")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBpath
Set RS = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM news"
RS.Open strSQL, Conn
If RS.EOF = true Or RS.BOF = true Then
Response.Write("<p align='center'><br>БД пуста<br></p>")
Else
Do While Not RS.EOF
If RS.EOF = true Or RS.BOF = true Then Exit Do
Do While i <= n
If IsNothing(sections) Then
ReDim sections(0)
sections(0) = RS.Fields("news_section") & i
Else
ReDim Preserve sections(UBound(sections))
sections(UBound(sections) - 1) = RS.Fields("news_section") & i
End If
i=i+1
Loop
Do While i <= n
If IsNothing(news) Then
ReDim news(0)
news(0) = RS.Fields("id_news") & i
Else
ReDim Preserve news(UBound(news))
news(UBound(news) - 1) = RS.Fields("id_news") & i
End If
i=i+1
Loop
RS.MoveNext
Loop
End If
RS.Close
Conn.Close
%>

Тип ошибки:
Ошибка выполнения Microsoft VBScript (0x800A000D)
Несоответствие типа: 'IsNothing'
/news/news.asp, line 32

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 6 | Автор: Алексей
Добавлено:11.07.2007 / 05:48
ну тогда:
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
Dim sections(0)
...
...
If i = 0 Then
sections(0) = данные
Else
ReDim Preserve sections(UBound(sections))
sections(UBound(sections) - 1) = данные
End If

Colorized by: Eros.CodeSyntaxColor Engine

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 7 | Автор: Kolya007
Добавлено:11.07.2007 / 16:43
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
038:
039:
040:
041:
042:
043:
044:
045:
046:
047:
048:
049:
050:
051:
052:
053:
054:
055:
056:
057:
058:
059:
060:
061:
062:
063:
064:
065:
066:
067:
068:
069:
070:
071:
072:
073:
074:
075:
076:
077:
078:
079:
080:
081:
082:
083:
084:
085:
086:
087:
088:
089:
090:
091:
092:
093:
094:
095:
096:
097:
098:
099:
100:
101:
<%
If Request("id_n") = "" Or Request("id_s") = "" Then
Response.Redirect("http://localhost/news/news.asp?id_n=0&id_s=0")
End If
Dim i
Dim Conn
Dim DBpath
Dim RS
Dim strSQL
Dim Conn1
Dim RS1
Dim strSQL1
Dim Conn2
Dim RS2
Dim strSQL2
Dim id_s
Dim id_n
Dim sections(0)
Dim news(0)
Set Conn = Server.CreateObject("ADODB.Connection")
DBpath = Server.MapPath("./db/db.mdb")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBpath
Set RS = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM news"
RS.Open strSQL, Conn
If RS.EOF = true Or RS.BOF = true Then
Response.Write("<p align='center'><br>БД пуста<br></p>")
Else
Do While Not RS.EOF
If RS.EOF = true Or RS.BOF = true Then Exit Do
Do While i <= n
If i = 0 Then
sections(0) = RS.Fields("news_section") & i
Else
ReDim Preserve sections(UBound(sections))
sections(UBound(sections) - 1) = RS.Fields("news_section") & i
End If
i=i+1
Loop
Do While i <= n
If i = 0 Then
news(0) = RS.Fields("id_news") & i
Else
ReDim Preserve news(UBound(news))
news(UBound(news) - 1) = RS.Fields("id_news") & i
End If
i=i+1
Loop
RS.MoveNext
Loop
End If
RS.Close
Conn.Close
%>
<html>
<head>
<title></title>
<link href="news.css" rel="stylesheet" type="text/css">
</head>
<body>
<table border="0" height="100%" width="100%">
<tr>
<td height="20%" width="*" align="center" valign="center" colspan="2">
<img align="middle" height="150" width="550" src="./info/logo/logo_text.gif" border="0">
</td>
</tr>
<tr>
<td height="*" width="20%" align="center" rowspan="3" valign="top">
<!-- Разделы, темы и т.д. -->
<iframe frameborder="no" height="100%" width="200" align="top" marginheight="0" marginwidth="0" scrolling="no" src="section.asp">
</iframe>
</td>
<td height="5%" align="center" valign="center" width="*">
<!-- Главные ссылки -->
<!--webbot bot="Include" U-Include="./menu/i_menu.htm" TAG="BODY" --></td>
</tr>
<tr>
<td height="*" width="*" align="center" valign="top">
<!-- Новости -->
<%
If id_n <> "0_" & id_news_rs Or id_n = 0 Then
If id_s <> sections Or id_s = 0 Then
Response.Write("Выберите раздел")
Else
Response.Write("RS1")
End If
Else
Response.Write("RS2")
End If
%>
</td>
</tr>
<tr>
<td height="*" width="*" align="center" valign="top">
<!-- Комментарии -->

</td>
</tr>
</table>
</body>
</html>

Тип ошибки:
Ошибка выполнения Microsoft VBScript (0x800A000D)
Несоответствие типа
/news/news.asp, line 90

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 8 | Автор: Алексей
Добавлено:12.07.2007 / 05:00
Скорей всего здесь ошибка:

82: If id_s <> sections Or id_s = 0 Then

так как sections - это массив.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 9 | Автор: Kolya007
Добавлено:12.07.2007 / 12:51
Тогда как мне сравнить id_s со всеми элементами массива?..
Использовать Do While Loop?..

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 10 | Автор: Алексей
Добавлено:12.07.2007 / 12:57
Можно и Do ... Loop, но For .. Next удобней ;)

001:
002:
003:
004:
005:
006:
007:
008:
009:
For i = 0 To UBound(sections) - 1
 If sections(i) = id_s Then
  Response.Write("id_s найден в элементе sections(" & i & ")!<br />")
 Else
  Response.Write("id_s НЕ найден в элементе sections(" & i & ")<br />")
 End If
Next i

Colorized by: Eros.CodeSyntaxColor Engine


Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 11 | Автор: Алексей
Добавлено:12.07.2007 / 15:03
Или так:

001:
002:
003:
004:
005:
006:
007:
008:
009:
For Each i In sections
 If i = id_s Then
  '...
 Else
  '...
 End If
Next i

Colorized by: Eros.CodeSyntaxColor Engine

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 12 | Автор: Kolya007
Добавлено:12.07.2007 / 16:51
Через For Next удобней, но при нем возникает ошибка:
Тип ошибки:
Ошибка компиляции Microsoft VBScript (0x800A0401)
Предполагается наличие окончания инструкции
/news/news.asp, line х, column у
Next i

Если знаешь как от нее избавиться буду рад услышать...

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 13 | Автор: Kolya007
Добавлено:12.07.2007 / 17:01
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
038:
039:
040:
041:
042:
043:
044:
045:
046:
047:
048:
049:
050:
051:
052:
053:
054:
055:
056:
057:
058:
059:
060:
061:
062:
063:
064:
065:
066:
067:
068:
069:
070:
071:
072:
073:
074:
075:
076:
077:
078:
079:
080:
081:
082:
083:
084:
085:
086:
087:
088:
089:
090:
091:
092:
093:
094:
095:
096:
097:
098:
099:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
<%
If Request("id_n") = "" Or Request("id_s") = "" Then
Response.Redirect("http://localhost/news/news.asp?id_n=0&id_s=0")
End If
Dim i
Dim j
Dim Conn
Dim DBpath
Dim RS
Dim strSQL
Dim Conn1
Dim RS1
Dim strSQL1
Dim Conn2
Dim RS2
Dim strSQL2
Dim id_s
Dim id_n
Dim sections(0)
Dim news(0)
Set Conn = Server.CreateObject("ADODB.Connection")
DBpath = Server.MapPath("./db/db.mdb")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBpath
Set RS = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM news"
RS.Open strSQL, Conn
If RS.EOF = true Or RS.BOF = true Then
Response.Write("<p align='center'><br>БД пуста<br></p>")
Else
Do While Not RS.EOF
If RS.EOF = true Or RS.BOF = true Then Exit Do
Do While i <= n
If i = 0 Then
sections(0) = RS.Fields("news_section") & i
Else
ReDim Preserve sections(UBound(sections))
sections(UBound(sections) - 1) = RS.Fields("news_section") & i
End If
i=i+1
Loop
Do While i <= n
If i = 0 Then
news(0) = RS.Fields("id_news") & i
Else
ReDim Preserve news(UBound(news))
news(UBound(news) - 1) = RS.Fields("id_news") & i
End If
i=i+1
Loop
RS.MoveNext
Loop
End If
RS.Close
Conn.Close
%>
<html>
<head>
<title></title>
<link href="news.css" rel="stylesheet" type="text/css">
</head>
<body>
<table border="0" height="100%" width="100%">
<tr>
<td height="20%" width="*" align="center" valign="center" colspan="2">
<img align="middle" height="150" width="550" src="./info/logo/logo_text.gif" border="0">
</td>
</tr>
<tr>
<td height="*" width="20%" align="center" rowspan="3" valign="top">
<!-- Разделы, темы и т.д. -->
<iframe frameborder="no" height="100%" width="200" align="top" marginheight="0" marginwidth="0" scrolling="no" src="section.asp">
</iframe>
</td>
<td height="5%" align="center" valign="center" width="*">
<!-- Главные ссылки -->
<!--webbot bot="Include" U-Include="./menu/i_menu.htm" TAG="BODY" --></td>
</tr>
<tr>
<td height="*" width="*" align="center" valign="top">
<!-- Новости -->
<%
Do While i <= UBound(news) - 1
If id_n = "0_" & id_news_rs(i) Then
Response.Write("RS2")
Else
If id_n = 0 Then
Do While j <= UBound(sections) - 1
If id_s = sections(j) Then
Response.Write("RS1")
Else
If id_s = 0 Then
Response.Write("Выберите раздел")
Else
Response.Write("Раздел указан неверно")
End If
End If
Loop
Else
Response.Write("Ссылка на новость неверна или новость удалена")
End If
End If
Loop
%>
</td>
</tr>
<tr>
<td height="*" width="*" align="center" valign="top">
<!-- Комментарии -->

</td>
</tr>
</table>
</body>
</html>

Ошибок нет, но на экран ничего невыводится... Только сама страница...

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 14 | Автор: Алексей
Добавлено:13.07.2007 / 05:55
Если знаешь как от нее избавиться буду рад услышать...

руками :) мне не понятно, как ты вобще умудряешься такие ошибки собирать, эта ошибка происходит из-за того, что ты что-то не закрыл, например скодку, или еще что-то подобное.

Вот этот код полюбому должен работать
001:
002:
003:
004:
005:
006:
007:
008:
009:
For i = 0 To UBound(sections) - 1
If sections(i) = id_s Then
 Response.Write("id_s найден в элементе sections(" & i & ")!<br />")
Else
 Response.Write("id_s НЕ найден в элементе sections(" & i & ")<br />")
End If
Next i

Colorized by: Eros.CodeSyntaxColor Engine


ну и Dim-ы можешь убрать, в классическом ASP они в принципе не нужны, только место зря занимают :)

По последнему коду:
DBpath = Server.MapPath(".../db/db.mdb")
три точки - это помоему многовато

От дебаж свой код, каждый шаг, например так:

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
038:
039:
040:
041:
042:
043:
044:
045:
046:
047:
048:
049:
050:
051:
052:
053:
054:
055:
056:
057:
058:
059:
060:
061:
062:
063:
064:
065:
066:
067:
068:
069:
070:
071:
072:
073:
074:
075:
076:
077:
078:
079:
080:
081:
082:
083:
084:
085:
086:
087:
088:
089:
090:
091:
092:
093:
094:
095:
096:
097:
098:
099:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
<%
If Request("id_n") = "" Or Request("id_s") = "" Then
Response.Redirect("http://localhost/news/news.asp?id_n=0&id_s=0")
End If
Dim sections(0)
Dim news(0)
Set Conn = Server.CreateObject("ADODB.Connection")
DBpath = Server.MapPath("./db/db.mdb")

debug = True 'true - режим дебага, false - обычный режим

If debug Then Response.Write("Путь к БД: " & DBpath & "<br />")

Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBpath
Set RS = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM news"
RS.Open strSQL, Conn

If debug Then Response.Write("RS.EOF: " & RS.EOF & "<br />")

If RS.EOF = True Or RS.BOF = True Then
Response.Write("<p align='center'><br>БД пуста<br></p>")
Else
Do While Not RS.EOF
If RS.EOF = True Or RS.BOF = True Then Exit Do
Do While i <= n
If i = 0 Then
sections(0) = RS("news_section") & i
If debug Then Response.Write("sections: " & UBound(sections) & "<br />")
Else
ReDim Preserve sections(UBound(sections))
sections(UBound(sections) - 1) = RS("news_section") & i
If debug Then Response.Write("sections: " & UBound(sections) & "<br />")
End If
i = i + 1
Loop

Do While i <= n
If i = 0 Then
news(0) = RS("id_news") & i
If debug Then Response.Write("news: " & UBound(news) & "<br />")
Else
ReDim Preserve news(UBound(news))
news(UBound(news) - 1) = RS("id_news") & i
If debug Then Response.Write("news: " & UBound(news) & "<br />")
End If
i = i + 1
Loop

RS.MoveNext
Loop
End If

RS.Close
Conn.Close
%>
<html>
<head>
<title></title>
<link href="news.css" rel="stylesheet" type="text/css">
</head>
<body>
<table border="0" height="100%" width="100%">
<tr>
<td height="20%" width="*" align="center" valign="center" colspan="2">
<img align="middle" height="150" width="550" src="./info/logo/logo_text.gif" border="0">
</td>
</tr>
<tr>
<td height="*" width="20%" align="center" rowspan="3" valign="top">
<!-- Разделы, темы и т.д. -->
<iframe frameborder="no" height="100%" width="200" align="top" marginheight="0" marginwidth="0" scrolling="no" src="section.asp">
</iframe>
</td>
<td height="5%" align="center" valign="center" width="*">
<!-- Главные ссылки -->
<!--webbot bot="Include" U-Include="./menu/i_menu.htm" TAG="BODY" --></td>
</tr>
<tr>
<td height="*" width="*" align="center" valign="top">
<!-- Новости -->
<%
Do While i <= UBound(news) - 1
If debug Then Response.Write("id_n= " & id_n & "id_news_rs(" & i & ") = " & id_news_rs(i) & "<br />")
If id_n = "0_" & id_news_rs(i) Then
Response.Write("RS2")
Else
If id_n = 0 Then
Do While j <= UBound(sections) - 1
If id_s = sections(j) Then
Response.Write("RS1")
Else
If id_s = 0 Then
Response.Write("Выберите раздел")
Else
Response.Write("Раздел указан неверно")
End If
End If
Loop
Else
Response.Write("Ссылка на новость неверна или новость удалена")
End If
End If
Loop
%>
</td>
</tr>
<tr>
<td height="*" width="*" align="center" valign="top">
<!-- Комментарии -->
</td>
</tr>
</table>
</body>
</html>

Colorized by: Eros.CodeSyntaxColor Engine

и все сразу встанет на свои места ;)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 15 | Автор: Kolya007
Добавлено:13.07.2007 / 11:11
руками :) мне не понятно, как ты вобще умудряешься такие ошибки собирать, эта ошибка происходит из-за того, что ты что-то не закрыл, например скодку, или еще что-то подобное.

Если бы дело было в этом, то он её неписал бы, т.к. код я проверяю на несколько раз... Может чего упуситл или забыл...
По последнему коду:
DBpath = Server.MapPath("./db/db.mdb")
три точки - это помоему многовато

Нормально... У меня так же и на странице last_news...

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 16 | Автор: Алексей
Добавлено:13.07.2007 / 12:26
Нормально... У меня так же и на странице last_news...

Специально проверил, Server.MapPath в данном случае возращает тоже самое что и принимает, т.е. "./db/db.mdb", в пути можно использовать либо одну точу +слеш - тогда путь будет относительно каталога в котором находится файл asp, либо две точки +слеш - путь будет на один (или на указанное количество уровней ./././ etc.) уровень выше относительно каталога в котором находится asp-файл.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 17 | Автор: Kolya007
Добавлено:13.07.2007 / 13:52
Нормально... У меня так же и на странице last_news...


Специально проверил, Server.MapPath в данном случае возращает тоже самое что и принимает, т.е. "./db/db.mdb", в пути можно использовать либо одну точу +слеш - тогда путь будет относительно каталога в котором находится файл asp, либо две точки +слеш - путь будет на один (или на указанное количество уровней ./././ etc.) уровень выше относительно каталога в котором находится asp-файл.

При трех точках он у меня читает с главного каталога...

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Динамическое меню (формируется во время выполнения программы) | Автор: Игорь Голов
Добавлено: 09.07.2007 / 10:39 | ответов: 4 | просмотров: 24

Доброго времени суток!

Интересует вопрос: как создать полноценное меню на компонентах MenuStrip и CintextMenuStrip программно?
Такое меню должно иметь все атрибуты меню, создаваемого в режиме дизайна: имя, обработчик события.
Буду рад примерам кода.

Платформа: Visual Basic .NET 2005

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: Алексей
Добавлено:09.07.2007 / 13:37
У менюшек есть свойство Items, через него можно добавлять элементы меню, главным образом текст, картинку и обработчик события..

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: Игорь Голов
Добавлено:09.07.2007 / 16:38
А пример задания обработчика события можно где - нибудь посмотреть?

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 3 | Автор: Алексей
Добавлено:09.07.2007 / 17:49
для менюшки там прям при создании Items можно указывать обработчик, Items.Add(текст, картинка, обработчик), возможно завтра гляну конкретно по меню, а пока, есть код, который создает панель на форме, и добавляет кнопку на эту панель, а для кнопки обработчки нажатия:

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
'(c) Aleksey S Nemiro <admin@kbyte.ru
'Special for Kbyte.Ru

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  Dim myPanel As New Panel
  myPanel.Name = "MyNewPanel1"
  myPanel.Top = 8
  myPanel.Left = 8
  myPanel.Width = 200
  myPanel.Height = 150
  Me.Controls.Add(myPanel) 'добавляем элемент Panel на форму
  Dim myButton As New Button
  myButton.Name = "MyNewButton"
  myButton.Text = "Это кнопка"
  'привязвываем обработчик события нажатия кнопки
  AddHandler myButton.Click, AddressOf myButton_Click
  myPanel.Controls.Add(myButton) 'добавляем новую кнопку на новую панель
 End Sub

 Private Sub myButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
  MsgBox("Нажади на кнопку!! АААА! ВЫ нажали на кнопку!!!!! Но... зачем?")
 End Sub

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 4 | Автор: Игорь Голов
Добавлено:12.07.2007 / 05:54
Пример добавления обработчика события к создаваемомму меню смотрим здесь:

http://bbs.vbstreets.ru/viewtopic.php?p=6667151&sid=4c66834d135c1f2a3181ca78031d024c

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Какие сайты по программированию Вы посещаете чаще всего, и почему? | Автор: Алексей
Добавлено: 08.07.2007 / 07:10 | ответов: 4 | просмотров: 36

сабж

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: Игорь Голов
Добавлено:08.07.2007 / 10:52
Kbyte.ru
Перебрал много сайтов.
На некоторых витает "синдром гуру" - это когда отдельных посетителей переполняет высокомерие.
А здесь тебе ответят и сделают это без всякого высокомерия - за что большое спасибо автору и коллективу!

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: Алексей
Добавлено:10.07.2007 / 03:36
На некоторых витает "синдром гуру" - это когда отдельных посетителей переполняет высокомерие

Дедовщина есть, была и всегда будет :)


----- ----- ----- >
ЗЫ: Хотелось бы услышать больше комментариев, чтобы знать в каком направлении нам двигаться.
----- ----- ----- <

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 3 | Автор: pasha
Добавлено:10.07.2007 / 10:03
Сайт теперь стал вообще отличным! Спасибо создателям!
Форум, конечно, лучший в россии, но у меня нет времеени его посещать :))
Сейчас я копаюсь на VBstrreets.ru, там исходников много... Там целый раздел про VB.NET, а здесь такого net... Там вот раздел, и в нем статьи, исходники, ,контролы про VB.NET. Здесь бы тоже так, чтобы разделы были не ПРИМЕРЫ, СТАТЬИ, КОДЫ а VB.net, VB6, VBA, C#, а в них всё остальное.
Всего надо больше, так как на VBNET.RU хотя бы...
И ещё: письма которые отправлял робот mailer@kbyte.ru мой Аутлук не понимает (правда я не знаю какие кодировки Аутлук понимает, но настроки у меня стоят по умолчанию) просьба отправлять в "обычной" русской (для аутлука) кодировке

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 4 | Автор: Алексей
Добавлено:10.07.2007 / 10:55
Сейчас я копаюсь на VBstrreets.ru, там исходников много... Там целый раздел про VB.NET, а здесь такого net... Там вот раздел, и в нем статьи, исходники, ,контролы про VB.NET. Здесь бы тоже так, чтобы разделы были не ПРИМЕРЫ, СТАТЬИ, КОДЫ а VB.net, VB6, VBA, C#, а в них всё остальное.
Всего надо больше, так как на VBNET.RU хотя бы...

Проблему контента мы решим, будем брать количеством, а не уникальностью :)

И ещё: письма которые отправлял робот mailer@kbyte.ru мой Аутлук не понимает (правда я не знаю какие кодировки Аутлук понимает, но настроки у меня стоят по умолчанию) просьба отправлять в "обычной" русской (для аутлука) кодировке

майлер уже ничего никому не отправляет, он был жестоко наказан за свои деяния, вместо него сообщения форума сейчас отправляет noreply@kbyte.ru в кодировке utf-8, ее должен понимать любой почтовый клиент. С win-1251 в фрамеворке косяк, а собственный компонент для работы с smtp я еще не написал..

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Наверх

 

Последние статьи

Выбор языка программирования для научных работ (2-я редакция)
Автор: Юдин С. Ю. | добавлено: 15.03.2007 / 02:49 | просмотров: 1552

Идея написания этой статьи возникла после того, как на одном из сайтов по физике http://physics.nad.ru/aniboard/messages/291.html я обнаружил интересный алгоритм моделирования движения тела в поле постоянной напряженности по различным направляющим. Вернее, меня заинтересовал не весь алгоритм, т.к. основа их всех одна (принцип Даламбера, если не считать квазиалгоритма с применением уравнений Лагранжа 2-го рода) и различаются они только способом определения реакций в месте соприкосновения тел. ...

Работаем с MIME
Автор: Немиро Алексей | добавлено: 29.11.2006 / 14:46 | просмотров: 1517

Не так давно мне пришлось немного поработать MIME (Multipurpose Internet Mail Extension) - это стандарт почтовых сообщений, в РуНете (Russian Internet) я не нашел нормального описания спецификации MIME, и посему решил написать небольшую статейку на эту тему. В данной статье вы узнаете об основных особенностях и стандартах MIME, а также научитесь «читать» MIME с использованием синтаксиса языка Visual Basic .NET 2005.

Visual Basic 2003/2005 .NET: Взаимодействие с Microsoft Word 2000 и выше
Автор: Хабибулин А. (aka Bille Gates) | добавлено: 05.10.2006 / 12:15 | просмотров: 2868

Эта статья будет полезна только тем людям, у которых установлен Microsoft Word 2000 или выше! Мы научимся делать всё возможное с документами MS WORD при помощи VB 2003/2005 .NET.

Visual Basic .NET: Работа с файлами
Автор: Хабибулин А. (aka Bille Gates) | добавлено: 04.10.2006 / 10:35 | просмотров: 3572

В этой статье мы поговорим о работе с файлами. Научимся добавлять и удалять файлы/каталоги, записывать и читать данные из файла и.т.д.

ASP .NET 2.0: Эталонные страницы
Автор: Немиро Алексей | добавлено: 27.08.2006 / 04:08 | просмотров: 2803

Как известно, большинство сайтов имеют однотипную, общепринятую разметку страниц, неотъемлемой частью которой является верхний и нижний колонтитулы и, пожалуй, самая главная часть - тело страницы, хотя конечно, бывают и исключения. ASP .NET 2.x предлагает уникальный метод создания одинаковой разметки для страниц сайта – это использование, так называемых, эталонных страниц. Если вы работали с ранними версиями ASP(ASP, ASP .NET 1.x), то, наверное, помните, что постоянно приходилось копировать H...

Описание ошибок VB
Автор: [root] | добавлено: 29.07.2006 / 06:58 | просмотров: 3823

В данном обзоре содержится русскоязычное описание ошибок Visual Basic 5.0/6.0.

Горячие клавиши VB 6.0
Автор: [root] | добавлено: 20.07.2006 / 13:21 | просмотров: 1924

В данном обзоре рассмотрены горячие клавиши Visual Basic 5.0/6.0, которые значительно ускоряют процесс разработки и тестирования программ.

ASP .NET 2.0: Файл Global.asax
Автор: Немиро Алексей | добавлено: 17.07.2006 / 18:04 | просмотров: 2376

Файл Global.asax является необязательным файлом приложений ASP .NET и содержит дополнительный код, отвечающий за обработку событий, происходящих на уровне приложения. Этот файл должен находиться в корневом каталоге Web-приложения. В ASP .NET 1.1 сей файл автоматически создавался Visual Studio при создании нового Web-проекта, в ASP .NET 2.0 Visual Studio Global.asax автоматически не создает, но его можно добавить в проект вручную. Все изменения, внесенные в файл Global.asax отслеживаются средо...

Как узнать страну по IP-адресу?
Автор: Amit Gupta | добавлено: 17.07.2006 / 08:09 | просмотров: 35718

Интернет широко распространен в большинстве стран и континентов. Узнать страну посетителей вашего веб-сайта может быть не легкой задачей, особенно если вы не знаете как это сделать...

Visual Basic 6.0 - Экспорт DataReport в Microsoft Word
Автор: John D. Conway | добавлено: 17.07.2006 / 06:16 | просмотров: 3467

В этой статье мы создадим пример базы данных Microsoft Access и пользовательский интерфейс в среде Visual Basic 6.0. Сделать это будет относительно несложно, поскольку для работы с нашей базой данных мы будем использовать компонент ADODC Componenet (Microsoft ADO Data Control 6.0 (OLEDB)). Мы добавим DataEnvironment и DataReport и буквально, в течении минуты, мы уже сможем экспортировать наш DataReport в Microsoft Word Document. (.doc)...

 

Статьи на Kbyte.Ru

Наверх

 

Интересные коды и решения

Как программно изменить дату в Calendar?
Дата добавления: 25.03.2007 / 08:33 | просмотров: 219 | платформа: ASP .NET (VB)

Удаление файла
Дата добавления: 31.07.2006 / 17:28 | просмотров: 419 | платформа: ASP .NET (VB)

Как изменить размер панели SplitContainer?
Дата добавления: 23.08.2006 / 19:07 | просмотров: 510 | платформа: VB .NET

Получение многоразрядного числа
Дата добавления: 31.07.2006 / 12:32 | просмотров: 422 | платформа: VB

Как запретить перезагрузку страницы при нажатии на кнопку (Button/LinkButton)?
Дата добавления: 31.07.2006 / 13:08 | просмотров: 769 | платформа: ASP .NET (VB)

Как создать новую папку (каталог)?
Дата добавления: 31.07.2006 / 12:36 | просмотров: 1044 | платформа: VB

Как узнать IP-адрес текущего посетителя?
Дата добавления: 31.07.2006 / 15:34 | просмотров: 920 | платформа: ASP .NET (VB)

Как изменить текущее системное время Windows?
Дата добавления: 16.08.2006 / 20:21 | просмотров: 469 | платформа: VB

Как добавить сайт в избранное?
Дата добавления: 24.03.2007 / 12:36 | просмотров: 152 | платформа: VB .NET

Как получить позицию курсора на экране?
Дата добавления: 16.08.2006 / 19:47 | просмотров: 418 | платформа: VB

Как удалить лишние пробелы из текста?
Дата добавления: 16.08.2006 / 19:05 | просмотров: 485 | платформа: VB

Проверка существования директории
Дата добавления: 31.07.2006 / 12:41 | просмотров: 1007 | платформа: VB

Как программно закрыть форму?
Дата добавления: 01.08.2006 / 17:20 | просмотров: 424 | платформа: VB .NET

Получение данных из Базы Данных MS Access
Дата добавления: 31.07.2006 / 17:39 | просмотров: 906 | платформа: ASP .NET (VB)

Как получить текущий физический путь?
Дата добавления: 31.07.2006 / 17:05 | просмотров: 408 | платформа: ASP .NET (VB)

Как нарисовать что-либо на Form/PictureBox?
Дата добавления: 24.03.2007 / 10:15 | просмотров: 105 | платформа: VB .NET

Как удалить все HTML-теги из текста?
Дата добавления: 24.03.2007 / 12:41 | просмотров: 235 | платформа: VB .NET

Рисвание градиентной заливки
Дата добавления: 24.03.2007 / 12:43 | просмотров: 174 | платформа: VB .NET

Анализ IP-адреса
Дата добавления: 24.03.2007 / 10:56 | просмотров: 135 | платформа: RegEx

Как определить, какие кнопки мыши нажаты?
Дата добавления: 16.08.2006 / 19:45 | просмотров: 469 | платформа: VB

Как ограничить количество вводимых символов в TextBox?
Дата добавления: 31.07.2006 / 13:59 | просмотров: 724 | платформа: ASP .NET (VB)

Как запретить пользователю закрыть форму?
Дата добавления: 31.07.2006 / 12:10 | просмотров: 390 | платформа: VB

Подсчет количества определенных символов в тексте
Дата добавления: 31.07.2006 / 12:30 | просмотров: 557 | платформа: VB

Как обработать не существующий адрес?
Дата добавления: 31.07.2006 / 14:45 | просмотров: 426 | платформа: ASP .NET (VB)

Как заблокировать кнопку "Закрыть" ([X])
Дата добавления: 31.07.2006 / 12:12 | просмотров: 473 | платформа: VB

 

Универсальные коды на Kbyte.Ru

Наверх

 

Юмор на Kbyte.Ru

Windows 95! - сказал программист и грязно выругался...

 

Рейтинг: 35
Всего голосов: 69
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Как узнать, что блондинка работала за компьютером?
Монитор выключен, в щель дисковода запихнут 25-центовик, рядом с мышью лежит кусок сыра, а на джойстик натянут презерватив.

 

Рейтинг: 28
Всего голосов: 48
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Земля
2050 год
Генетический программер разбирает очерендной кусок генной последовательности и видит следующий комментарий:
/* A eti geny nado by ubrat nahren. Archangel Gavriil */

 

Рейтинг: 36
Всего голосов: 53
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

- Скажите, пожалуйста, Рабинович живет в этом доме?
- Да, на третьем этаже. Только его фамилия Михельсон.

 

Рейтинг: 0
Всего голосов: 0
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Пробежки по утрам, употребление безопасных продуктов питания и полный отказ от вредных привычек может существенно продлить ваше жалкое существование...

 

Рейтинг: 557
Всего голосов: 813
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Училка сынку программера:
- Ты чего в словосочетании "Дубовая роща" слово "роща" через "я" написал?
А ну-ка на доске 20 раз правильно напиши, чтобы на всю жизнь запомнил!
Через минуту поворачивается и видит: @Repeat("роща"; 20)

 

Рейтинг: 30
Всего голосов: 48
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Психиатр говорит своей знакомой:
- Как поживает ваш муж?
- Доктор, но я не замужем!
- Да? Значит ваш муж холостяк!
end data of the request.

 

Рейтинг: 0
Всего голосов: 0
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Пьяный звонит в дверь. Слышится голос жены:
- Кто там?
- Бревно!
Дверь открывается. Мужик переступает порог и падает:
- А теперь пили!

 

Рейтинг: 27
Всего голосов: 38
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Жила-была Красная Шапочка. Как-то раз идет она по лесу,плачет - вся в слезах. Встречает Медведя.
- Почему ты плачешь, Красная Шапочка?
- Понимаешь, Медведь, в моем возрасте у девочек уже появляются волосики на лобке, а у меня ничего нет. Ну как мне не плакать?!
Сжалился Медведь над девочкой, оторвал себе хвост да и приставил к лобку Красной Шапочки.
С тех пор у медведя нет хвоста.
Идет дальше по лесу Красная Шапочка, и вдруг опять начинает плакать. А навстречу ей идет Аист.
- Отчего ты так плачешь, Красная Шапочка?
- Ну как мне не плакать, дорогой мой Аист, ведь в моем возрасте девченки давно уже не девственницы, одна я такая хожу...
Сжалился Аист над девочкой, взял да и порвал клювом целочку.
С тех пор у всех аистов красные клювы.
Идет дальше Красная Шапочка, выходит к озеру, садиться на берег и начинает плакать еще пуще прежднего. Выходит из озера Золотая Рыбка и спрашивает:
- Почему ты так плачешь, Красная Шапочка?
- Как не плакать, Рыбка, ведь в моем возрасте уже все девчонки знают что такое оргазм и испытали его, только я вот понятия не имею что это такое...
Сжалилась Золотая Рыбка, вышла из воды, поработала хвостиком и довела девушку до оргазма.
Но с тех пор так никто и не может понять: то ли пи..да пахнет рыбой, то ли рыба пахнет пи..дой...

 

Рейтинг: 0
Всего голосов: 0
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Сцена в автобусе.
На первых сиденьях сидят с IQ за 130. - Я сегодня перечитал Достоевского,получил огромное эстетическое наслаждение.
Далее те у кого IQ 110. - Читал "Поле битвы - земля"? Нет? Много потерял....
Затем у кого IQ 80 - Да , классная вчера порнуха по телеку шла...
Те у кого IQ 50 - Если эта падла мне лаве не откинет за крышу,на следующей недели замочу!
И наконец,на самых задних сиденьях те,у кого IQ 30 - У тебя дебаггеры новые есть?

 

Рейтинг: 41
Всего голосов: 60
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Весь юмор на Kbyte.Ru

Наверх


Выпуск подготовил: R-KDR-19826

Редактор: Немиро Алексей

Copyright (c) Nemiro AS, 2005-2007


В избранное