ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #341  
Старый 06.10.2007, 21:21
Piflit
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме:
5128756

Репутация: 2032


Отправить сообщение для Piflit с помощью ICQ
По умолчанию

Цитата:
Сообщение от Ni0x  
Piflit,
функция при успешном результате вернет младший байт установленной позиции.
так, я разобрался, спс inv'y за помощь. что такое младший байт установленной позиции, и чем он отличается от старшего?
 
Ответить с цитированием

  #342  
Старый 06.10.2007, 21:46
Ni0x
Постоянный
Регистрация: 27.08.2006
Сообщений: 367
Провел на форуме:
2009677

Репутация: 472
По умолчанию

Вот справка, тут подробнее описано.
Цитата:
;-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·;
; Функция SetFilePointer пеpемещает файловый указатель откpытого файла. ;
; ;
; DWORD SetFilePointer( ;
; HANDLE hFile, // хэндл файла ;
; LONG lDistanceToMove, // дистанция, на котоpое нужно пеpеместить ;
; // файловый указатель (в байтах) ;
; PLONG lpDistanceToMoveHigh, // адpес веpхнего слова дистанции ; ;
; DWORD dwMoveMethod // как пеpемещать ;
; ); ;
; ;
; Паpаметpы ;
; --------- ;
; ;
; ¦ hFile: Задает файл, чей файловый указатель должен быть пеpемещен. ;
; Хэндл файла должен быть создан с доступом GENERIC_READ или ;
; GENERIC_WRITE. ;
; ;
; ¦ lDistanceToMove: Задает количество байтов, на котоpое нужно ;
; пеpеместить файловый указатель. Положительное значение двигает ;
; указатель впеpед, а отpицательное - назад. ;
; ;
; ¦ lpDistanceToMoveHigh: Указывает на веpхнее двойное слово 64-х битной ;
; дистанции пеpемещения. Если значение это паpаметpа pавно NULL, функция ;
; SetFilePointer может pаботать с файлами, pазмеp котоpых не пpевышает ;
; 2^32-2. Если это паpаметp задан, то максимальный pазмеp pавен 2^64-2. ;
; Также это паpаметp пpинимает веpхнее двойное слово позиции, где должен ;
; находиться файловый указатель. ;
; ;
; ¦ dwMoveMethod: Задает стаpтовую позицию, откуда должен двигаться ;
; файловый указатель. Этот паpамет может быть pавен одному из следующих ;
; значений: ;
; ;
; Константа Значение ;
; ;
; + FILE_BEGIN - Стаpтовая позиция pавна нулю или началу файла. Если ;
; задана эта константа, DistanceToMove интеpпpетиpуется ;
; как новая беззнаковая позиция файлового указателя. ;
; ;
; + FILE_CURRENT - Стаpтовой позицией является текущее положение ;
; файлового указателя. ;
; ;
; + FILE_END - Стаpтовой позицией является конец файла. ;
; ;
; ;
; Возвpащаемые значения ;
; --------------------- ;
; ;
; ¦ Если вызов функции SetFilePointer пpошел успешно, возвpащаемое ;
; значение - это нижнее двойное слово новой позиции файлового указателя, ;
; и если lpDistanceToMoveHigh не было pавно NULL, функция помещает ;
; веpхнее двойное слово в LONG, на котоpый указывает этот паpаметp. ;
; ;
; ¦ Если вызов функции не удался и lpDistanceToMoveHigh pавно NULL, ;
; возвpащаемое значение pавное 0xFFFFFFFF. Чтобы получить pасшиpенную ;
; инфоpмацию об ошибке, вызовите GetLastError. ;
; ;
; ¦ Если вызов функции не удался и lpDistanceToMoveHigh не pавно NULL, ;
; возвpащаемое значение pавно 0xFFFFFFFF и GetLastError возвpатит ;
; значение, отличное от NO_ERROR. ;
; ;
; ---
На счет старших и младших - открой любую книгу по ассемблеру, там все описано подробно.
 
Ответить с цитированием

  #343  
Старый 07.10.2007, 18:08
Piflit
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме:
5128756

Репутация: 2032


Отправить сообщение для Piflit с помощью ICQ
По умолчанию

как на winapi пропарсить строку? если конкретно, нужно получить имя файла из его полного пути.
 
Ответить с цитированием

  #344  
Старый 07.10.2007, 18:22
GlOFF
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме:
1845671

Репутация: 1338


По умолчанию

Piflit
Цитата:
DWORD GetFullPathName(
LPCTSTR lpFileName, // address of name of file to find path for
DWORD nBufferLength, // size, in characters, of path buffer
LPTSTR lpBuffer, // address of path buffer
LPTSTR *lpFilePart // address of filename in path
);
Интересен нам lpFilePart - адресс на имя файла в полном пути файла.
 
Ответить с цитированием

  #345  
Старый 08.10.2007, 08:11
FoX's
Участник форума
Регистрация: 26.12.2004
Сообщений: 188
Провел на форуме:
1495357

Репутация: 107
Отправить сообщение для FoX's с помощью ICQ
По умолчанию

Цитата:
int GetFileName(char *path,int pathsize)
{
for(int a=pathsize; a>=0 ; a--){

if(path[a]=='\\'){
return (DWORD)path+a+1;
}
}
return 0;
}
зачем апи? вот примерно накидал. так быстрее
 
Ответить с цитированием

  #346  
Старый 08.10.2007, 12:12
sni4ok
Участник форума
Регистрация: 04.11.2006
Сообщений: 150
Провел на форуме:
1174659

Репутация: 175
Отправить сообщение для sni4ok с помощью ICQ
По умолчанию

Цитата:
Сообщение от FoX's  
зачем апи? вот примерно накидал. так быстрее
не шаришь, во первых в полном пути файла могут быть символы '/', а не '\', во вторых твой вариант - возвращающий int вместо указателя будет работать не правильно на x64 платформе, поскольку там(под виндой) sizeof(int) == 4, а sizeof от указателя 8.
 
Ответить с цитированием

  #347  
Старый 08.10.2007, 16:32
Underwit
Banned
Регистрация: 06.10.2006
Сообщений: 288
Провел на форуме:
2741921

Репутация: 469
По умолчанию

С:
signed и unsigned, можно про это поподробней что значит знаковыйБ беззнаковый - это как понять?
 
Ответить с цитированием

  #348  
Старый 08.10.2007, 16:46
halkfild
Leaders of Antichat - Level 4
Регистрация: 11.11.2005
Сообщений: 391
Провел на форуме:
7084941

Репутация: 2277
По умолчанию

это значит что верхний бит числа не знак, а понимается как еще один розряд числа
 
Ответить с цитированием

  #349  
Старый 08.10.2007, 16:46
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

Грубо говоря, это те же яйца, только в профиль... Что знаковые, что беззнаковые типы - они одинаково хранятся в памяти. Скажем тип int - 32 бита или 4 байта. Что в знаковом представлении, что в беззнаковом - в памяти это 4 байта как не крути. Команды процессора по работе с этим типом не будут отличаться. Фишка в том, с каких позиций рассматривается этот тип. То есть первый бит может рассматриваться как "знаковый", т.е. если он равен 0, то значение считается положительным, если установлен в 1, то значение считается отрицательным, остальные же биты числа определяют именно значение. Соответственно, если первый бит будет интерпретироваться как знак, то такое значение имеет меньшую "ёмкость".
 
Ответить с цитированием

  #350  
Старый 08.10.2007, 16:47
Ni0x
Постоянный
Регистрация: 27.08.2006
Сообщений: 367
Провел на форуме:
2009677

Репутация: 472
По умолчанию

В случае с signed, проще говоря, переменная x - любое действительное число(учитываем типы), тоесть x может быть меньше, больше или равным нулю, а в случае unsigned - x не может быть отрицательной, тоесть x => 0. По умолчанию все переменные signed, если нам нужна беззнаковая переменная - прописываем перед типом unsigned, обычно просто unsigned перед переменной воспринимается компилятором, как unsigned int.

Последний раз редактировалось Ni0x; 08.10.2007 в 16:50..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP, PERL, MySQL, JavaScript 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ