ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

11.06.2008, 10:57
|
|
Новичок
Регистрация: 07.06.2008
Сообщений: 12
Провел на форуме: 26887
Репутация:
2
|
|
groundhog Пишу на C++Builder 6.0. Домой приду - попробую что насоветовали. Останутся вопросы - позадаю. Спасибо.
|
|
|

11.06.2008, 16:37
|
|
Banned
Регистрация: 22.12.2007
Сообщений: 660
Провел на форуме: 3885269
Репутация:
1158
|
|
Код:
BOOL GetFile (HINTERNET IN hOpen, // Handle from InternetOpen()
CHAR *szUrl, // Full URL
CHAR *szFileName) // Local file name
{
DWORD dwSize;
CHAR szHead[] = "Accept: */*\r\n\r\n";
VOID * szTemp[25];
HINTERNET hConnect;
FILE * pFile;
if ( !(hConnect = InternetOpenUrl ( hOpen, szUrl, szHead,
lstrlen (szHead), INTERNET_FLAG_DONT_CACHE, 0)))
{
cerr << "Error !" << endl;
return 0;
}
if ( !(pFile = fopen (szFileName, "wb" ) ) )
{
cerr << "Error !" << endl;
return FALSE;
}
do
{
// Keep coping in 25 bytes chunks, while file has any data left.
// Note: bigger buffer will greatly improve performance.
if (!InternetReadFile (hConnect, szTemp, 50, &dwSize) )
{
fclose (pFile);
cerr << "Error !" << endl;
return FALSE;
}
if (!dwSize)
break; // Condition of dwSize=0 indicate EOF. Stop.
else
fwrite(szTemp, sizeof (char), dwSize , pFile);
} // do
while (TRUE);
fflush (pFile);
fclose (pFile);
return TRUE;
}
Чуваки, у меня вывод в поле Symbol: в цифрах, я так понял в кодах ANSI. А можно ли сделать чтоб вывод был в символах которые я ввел?
|
|
|

11.06.2008, 19:58
|
|
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме: 2187381
Репутация:
518
|
|
strstr(kod_procedure,"Symbol") дает NULL! 
|
|
|

11.06.2008, 23:31
|
|
Постоянный
Регистрация: 05.01.2007
Сообщений: 508
Провел на форуме: 2360904
Репутация:
1393
|
|
Сообщение от procedure
Код:
BOOL GetFile (HINTERNET IN hOpen, // Handle from InternetOpen()
CHAR *szUrl, // Full URL
CHAR *szFileName) // Local file name
{
DWORD dwSize;
CHAR szHead[] = "Accept: */*\r\n\r\n";
VOID * szTemp[25];
HINTERNET hConnect;
FILE * pFile;
if ( !(hConnect = InternetOpenUrl ( hOpen, szUrl, szHead,
lstrlen (szHead), INTERNET_FLAG_DONT_CACHE, 0)))
{
cerr << "Error !" << endl;
return 0;
}
if ( !(pFile = fopen (szFileName, "wb" ) ) )
{
cerr << "Error !" << endl;
return FALSE;
}
do
{
// Keep coping in 25 bytes chunks, while file has any data left.
// Note: bigger buffer will greatly improve performance.
if (!InternetReadFile (hConnect, szTemp, 50, &dwSize) )
{
fclose (pFile);
cerr << "Error !" << endl;
return FALSE;
}
if (!dwSize)
break; // Condition of dwSize=0 indicate EOF. Stop.
else
fwrite(szTemp, sizeof (char), dwSize , pFile);
} // do
while (TRUE);
fflush (pFile);
fclose (pFile);
return TRUE;
}
Чуваки, у меня вывод в поле Symbol: в цифрах, я так понял в кодах ANSI. А можно ли сделать чтоб вывод был в символах которые я ввел?
Мдее... я для примера тебе дал. Дальше меняй сам, как тебе нужно.
|
|
|

12.06.2008, 00:06
|
|
Banned
Регистрация: 22.12.2007
Сообщений: 660
Провел на форуме: 3885269
Репутация:
1158
|
|
Код:
#include <stdio.h>
main()
{
int c, nl, t, space, n, i, l;
int array[100];
nl = c = t = space = n = 0;
for (i = 0; i < 100; ++i) {
array[i] = 0;
}
i = 0;
while ((c = getchar()) != EOF) {
if (c = '\n') {
printf("\n\tSymbol: ");
for (l = 0; l < i; ++l) {
printf("%d ", array[l]);
}
printf("\n\tTab: %d\n\tSpace: %d\n\tNumber: %d\n", t, space, n);
break;
}
else if (c = '\t') {
++t;
}
else if (c = ' ') {
++space;
}
else if (c >= '0' && c <= '9') {
++n;
}
else {
array[i] = c;
++i;
}
}
}
БЛин чуваки я дурак, не тот код скопировал. В этом подскажите пожалуйста в чем может быть проблема. После Symbol: выдаются цифры вместо букв.
|
|
|

12.06.2008, 00:13
|
|
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме: 2187381
Репутация:
518
|
|
ps
Сообщение от procedure
Код:
#include <stdio.h>
main()
{
int c, nl, t, space, n, i, l;
int array[100];
nl = c = t = space = n = 0;
for (i = 0; i < 100; ++i) {
array[i] = 0;
}
i = 0;
while ((c = getchar()) != EOF) {
if (c = '\n') {
printf("\n\tSymbol: ");
for (l = 0; l < i; ++l) {
printf("%d ", array[l]); //!!! собака тут!!!!!!!!!!!!!!!!!!
// если хочешь как символ printf("%с ",(char ) array[l]);
// но будешь терять информацию в один байт два байта не впихнуть без потерь
}
printf("\n\tTab: %d\n\tSpace: %d\n\tNumber: %d\n", t, space, n);
break;
}
else if (c = '\t') {
++t;
}
else if (c = ' ') {
++space;
}
else if (c >= '0' && c <= '9') {
++n;
}
else {
array[i] = c;
++i;
}
}
}
БЛин чуваки я дурак, не тот код скопировал. В этом подскажите пожалуйста в чем может быть проблема. После Symbol: выдаются цифры вместо букв.
... переделай на char array[100];
но самой главное что ты массив и не заполняешь!!!!
|
|
|

12.06.2008, 00:22
|
|
Постоянный
Регистрация: 05.01.2007
Сообщений: 508
Провел на форуме: 2360904
Репутация:
1393
|
|
procedure, я тебя уже спросил, что ты от кода ждешь????
|
|
|

12.06.2008, 00:32
|
|
Banned
Регистрация: 22.12.2007
Сообщений: 660
Провел на форуме: 3885269
Репутация:
1158
|
|
z01b-> когда я только дошел до циклов в книге, у меня была задачка скопировать входной поток в выходной с фильтрацией символов. Я ее так и не смог не применяя функций (кроме getchar) и массивов решить, сейчас хотяб так постараюсь решить. Только не помогайте чуваки плиз, если что я вопрос сам задам. Я хочу сам сделать)))
Потом постепенно буду добавлять в эту задачку новые упражнния усложняя ее все более и более.
|
|
|

12.06.2008, 00:34
|
|
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме: 2187381
Репутация:
518
|
|
дебагером учись пользоваться , сразу увидишь механику ИЗНУТРИ!
|
|
|

12.06.2008, 00:47
|
|
Banned
Регистрация: 22.12.2007
Сообщений: 660
Провел на форуме: 3885269
Репутация:
1158
|
|
еще вопрос, а как мне нужно полностью массив в char переделать?
int array[100];
переделать вот так:
char array[100];
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|