Про апи функцию GetPrivateProfileString вопрос (+)

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ElektriK
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 12.12.2005 (Пн) 20:53
Откуда: Екатеринбург

Про апи функцию GetPrivateProfileString вопрос (+)

Сообщение ElektriK » 12.12.2005 (Пн) 21:06

Собственно использую ее для получения строк из ini файла. Все замечательно работает, но есть проблема.

Итак что имеем:
Объявили функцию
Declare Function GetPrivateProfileString& Lib _
"kernel32" Alias "GetPrivateProfileStringA" (ByVal _
lpszSection$, ByVal lpszKey$, ByVal lpszDefault$, _
ByVal lpszReturnBuffer$, ByVal cchReturnBuffer&, _
ByVal lpszFile$)

В коде программы пишем:
Dim MyString As String
'"набиваем" её пробелами
MyString = Space(100)

'открывается файл файл test.ini, и в переменную MyString _
записывается строка из заголовка "Main", ключа "URL"
Call GetPrivateProfileString("Main", "URL", "", MyString, _
Len(MyString), "C:\test.ini")

Все прекрасно робит, но MyString возвращает считанную строку и плюс к этому еще хрен знает что за символ в конце строки... Я поначалу думал что это пробел и попросту хотел избавиться от него через Trim(MyString), но увы и ах...
Че делать? Где я туплю?

Cryonyx
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 292
Зарегистрирован: 12.11.2004 (Пт) 15:40
Откуда: Net_SubStream

Сообщение Cryonyx » 12.12.2005 (Пн) 23:42

Сама функция возвращает длину подстроки, которую надо вырезать из полученной строки. Попробуй, можа получится.
Если тебе не по сердцу мой путь,
Выбери сам или выбери с кем,
А мне по барабану вся эта муть -
Я не червонец, чтобы нравиться всем!
© К.Кинчев
--
Мой блог: щёлкай сюда

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 13.12.2005 (Вт) 0:25

Это vbNullChar или Chr$(0) - нулевой символ.

Код: Выделить всё
MyString = Left$(MyString, InStr(MyString, Chr$(0)) - 1)
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 160

    TopList