Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Считывание  через и-нет.... надо произвести считывание-запись с сайт 
:(
    Опции темы
Plotter
  Дата 20.11.2002, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 20.10.2002
Где: Москва

Репутация: нет
Всего: нет



Меня тут заинтересовал один вопрос... А можно ли как-то произвести считывание из файла, который находится не на винте, а, допустим, в интернете...??? что-то вроде http://www.сайт.ru/file.txt ... и хорошо бы в этот файл научиться что-нить записывать... Может это как-то легко делается...
PM MAIL WWW   Вверх
Klin
  Дата 20.11.2002, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: нет
Всего: 25



ИМХО да.
Но там с водом адреса туруды.


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
Plotter
  Дата 20.11.2002, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 20.10.2002
Где: Москва

Репутация: нет
Всего: нет



:dg Чей-то я не понял, что ты сказал........ это по-русски, или ты так ругаешься оригинально....  :)
PM MAIL WWW   Вверх
AntonSaburov
Дата 20.11.2002, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



Считать файл обычно труда не представляет. Открываем сокет на 80-й порт нужного хоста и передаем ему
GET /file.txt HTTP/1.1
<CR>
<CR>

В ответ получим файл. Записать тоже в принципе можно, используя тот же HTTP, но кто тебе просто так позволит файлы переписывать ?
PM MAIL WWW ICQ   Вверх
Plotter
Дата 20.11.2002, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 20.10.2002
Где: Москва

Репутация: нет
Всего: нет



Ну, сайт-то  мой, так что записать должны дать...
Наверное...... ???
А вот как сокет на 80-й порт открыть?

P.s. может какой исходничек у тя есть...?
PM MAIL WWW   Вверх
AntonSaburov
Дата 20.11.2002, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



Исходников сейчас под рукой нет. Могу дать направление:
MSDN "The Baseline Version: A Very Poor Performing Application"

BOOL Map[ROWS][COLS];
void LifeUpdate()
{
   ComputeNext( Map );
   for( int i = 0 ; i < ROWS ; ++i )     //serialized
       for( int j = 0 ; j < COLS ; ++j )
           Set( i, j, Map[i][j] );    //chatty
}

BYTE Set(row, col, bAlive)
{
   SOCKET s = socket(…);
   BYTE byRet = 0;
   setsockopt( s, SO_SNDBUF, &Zero, sizeof(int) );
   bind( s, … );
   connect( s, … );
   send( s, &row, 1 );
   send( s, &col, 1 );
   send( s, &bAlive, 1 );
   recv( s, &byRet, 1 );
   closesocket( s );
   return byRet;
}

Основное в процедуре Set(..)
1. Создать сокет (socket)
2. Подключить его к локальной машине (bind)
3. Соединится с удаленной машиной (connect)
4. Посылать данные (send)
5. Получать данные (recv)
PM MAIL WWW ICQ   Вверх
Plotter
Дата 20.11.2002, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 20.10.2002
Где: Москва

Репутация: нет
Всего: нет



Лана, попробую что-нить смастерить... Будут вопросы - напишу.
PM MAIL WWW   Вверх
Baa
Дата 21.11.2002, 05:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



Можно использовать класс CHTTPFile
Также можно просто использовать библиотеку wininet.


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
DrMasik
Дата 21.12.2002, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 13.12.2002

Репутация: нет
Всего: нет



Вот то, что ты хотел. как раз пару мес назад попросили написать... Лови и пользуйтесь! Только копирайты поставьте, плиз:)
//The main file for FTP auot update
//Let's beginning
#include <windows.h>
#include <wininet.h>// Wininet.lib
#include <time.h> //for local time
#include <fstream>
#include <string>
#include <conio.h>
#include <iostream>
//#include "Error.h"

//------------------------------------------------------------------------------------------
---------------*/
HINTERNET ConnectedHandle;
WIN32_FIND_DATA FindFileDataLocal;
std::string FilePathLocal="\0", DirectoryPath="\0", EntrenceDirName, LocalPathToDataFile="\0", ErrorString="NO errors";

//------------------------------------------------------------------------------------------
---------------*/
bool ConnectToFTPServer(void);
bool DataRead(std::string *HostIPOrAddress,
std::string *UserLogon,
std::string *UserPassword,
std::string *FilePathLocal);
void HelpData(void);
bool IsItDirectory(void);
bool ItemFindLocal(std::string ItemName, HANDLE *HDL);
bool ParentLevelGo(void);
void Error(int Type);
void RepeatUntillKeyPressed(void);
//------------------------------------------------------------------------------------------
---------------*/

bool ExistDirectory(){
if(!FtpSetCurrentDirectory(ConnectedHandle, FindFileDataLocal.cFileName)){
//std::cout<<"Exist->"<<FindFileDataLocal.cFileName<<std::endl;
//std::cout<<"Directory NOT exist!"<<std::endl;
return (false);
}//if
//if(!
//std::cout<<"Exist->"<<FindFileDataLocal.cFileName<<std::endl;
FtpSetCurrentDirectory(ConnectedHandle, "..");
//)//std::cout<<"Directory chache error exist!"<<std::endl;
//std::cout<<"Directory exist!"<<std::endl;
return (true);
}//ExistDirectry//------------------------------------------------------------------------------------------
---------------*/

int main(int argc, char *argv[]){//The maine:)  начало начал
HANDLE HandlerFilePathLocal;
struct tm *newtime;
time_t aclock;
std::fstream LogFile;
bool FullExit=false;
//-------------------------------
LocalPathToDataFile=argv[0];
for(int i=LocalPathToDataFile.length()-1; LocalPathToDataFile[i]!='\\'; i--) LocalPathToDataFile.replace(i, 1, "");
//-------------------------------
if(!ConnectToFTPServer()) FullExit=true;
//-------------------------------
//Open log file
LogFile.open((LocalPathToDataFile+"FTPAULog.txt").c_str(), std::ios_base::app | std::ios_base::out);
if(!LogFile.is_open()) LogFile.open((LocalPathToDataFile+"FTPAULog.txt").c_str(), std::ios_base::out);
LogFile<<"------------------------------------------------------------------&qu
ot;<<std::endl;
 time( &aclock );                 /* Get time in seconds */
 newtime = localtime( &aclock );  /* Convert time to struct *//* tm form */
LogFile<<"Beginning of transfer of the data at\t\t"<<asctime(newtime);//<<std::endl;
LogFile.close();
//-------------------------------
if(!FullExit){
DirectoryPath=FilePathLocal;
if(DirectoryPath.empty() || argc>1){
if(argc<2){
FullExit=true;
HelpData();
}//if
else{
DirectoryPath=argv[1];
}//if
}//if
std::cout<<"Read data from >>"<<DirectoryPath<<"<<"<<std::endl;
//std::cout<<"Read data from >>"<<DirectoryPath.length()<<"<<"<<std::endl;
//Sleep(3000);
if(!FullExit){
if(DirectoryPath.length()==3) DirectoryPath.replace(DirectoryPath.length()-1,1,"");
if(!SetCurrentDirectory(DirectoryPath.c_str())) {
Error(8);
std::cout<<">>83<<"<<std::endl;
FullExit=true;
}
}//if
if(!FullExit){
HandlerFilePathLocal=FindFirstFile((DirectoryPath+"\\*.*").c_str(), &FindFileDataLocal);
if(HandlerFilePathLocal==INVALID_HANDLE_VALUE){
Error(3);
FullExit=true;
}
FindNextFile(HandlerFilePathLocal, &FindFileDataLocal);
FindNextFile(HandlerFilePathLocal, &FindFileDataLocal);
}//if
}//if
//если есть это дирестория на серваке - входим в нее иначе создаем и тоже самое
while(!FullExit){
if(IsItDirectory()){
//std::cout<<FindFileDataLocal.cFileName<<std::endl;
if(ExistDirectory()){//входим в директорию на серваке и локально
//std::cout<<FindFileDataLocal.cFileName<<std::endl;
if(!FtpSetCurrentDirectory(ConnectedHandle, FindFileDataLocal.cFileName)){
std::cout<<FindFileDataLocal.cFileName<<std::endl;
Error(7);
std::cout<<">>>103<<<"<<std::endl;
FullExit=true;
break;
}
//else std::cout<<"FtpSetCurrentDirectory was done successfully!"<<std::endl;
//local
DirectoryPath+="\\";
DirectoryPath+=FindFileDataLocal.cFileName;
if(!SetCurrentDirectory(DirectoryPath.c_str())){
Error(8);
std::cout<<">>112<<"<<std::endl;
FullExit=true;
break;
}
//else std::cout<<"Directory chanched successfully!"<<std::endl;
HandlerFilePathLocal=FindFirstFile((DirectoryPath+"\\*.*").c_str(), &FindFileDataLocal);
if(HandlerFilePathLocal==INVALID_HANDLE_VALUE){
Error(3);
FullExit=true;
break;
}
FindNextFile(HandlerFilePathLocal, &FindFileDataLocal);
}//if
else{//создаем директорию
if(!FtpCreateDirectory(ConnectedHandle, FindFileDataLocal.cFileName)){
Error(4);
FullExit=true;
break;
}
//else std::cout<<"FtpCreateDirectory was done successfully!"<<std::endl;
if(!FtpSetCurrentDirectory(ConnectedHandle, FindFileDataLocal.cFileName)){
Error(7);
std::cout<<">>>135<<<"<<std::endl;
FullExit=true;
break;
}
//else std::cout<<"FtpSetCurrentDirectory was done successfully!"<<std::endl;
//local
DirectoryPath+="\\";
DirectoryPath+=FindFileDataLocal.cFileName;
if(!SetCurrentDirectory(DirectoryPath.c_str())){
Error(8);
std::cout<<">>143<<<"<<std::endl;
FullExit=true;
break;
}
//else std::cout<<"Directory chanched successfully!"<<std::endl;
HandlerFilePathLocal=FindFirstFile((DirectoryPath+"\\*.*").c_str(), &FindFileDataLocal);
if(HandlerFilePathLocal==INVALID_HANDLE_VALUE){
Error(3);
FullExit=true;
break;
}
FindNextFile(HandlerFilePathLocal, &FindFileDataLocal);
}//else
}//if
else{//it is a file
if(FtpPutFile(ConnectedHandle, (DirectoryPath+"\\"+FindFileDataLocal.cFileName).c_str(), FindFileDataLocal.cFileName, FTP_TRANSFER_TYPE_UNKNOWN, 0));
//std::cout<<"File updated!"<<std::endl;
else {
Error(11);
FullExit=true;
break;
}
}//else
//go on next file on local HDD
if(FindNextFile(HandlerFilePathLocal, &FindFileDataLocal)){
//std::cout<<"Next item exist!"<<std::endl;
}
else{// go to the parent level
//std::cout<<"Next item NOT exist!"<<std::endl;
while(1){
//std::cout<<"Going to the parent level!"<<std::endl;
EntrenceDirName="\0";
if(!ParentLevelGo()){FullExit=true; break;}
else{//go to current DIR
if(!SetCurrentDirectory(DirectoryPath.c_str())){
Error(8);
std::cout<<">>175<<"<<std::endl;
FullExit=true;
break;
}
//else std::cout<<"Directory chanched successfully!"<<std::endl;
HandlerFilePathLocal=FindFirstFile((DirectoryPath+"\\*.*").c_str(), &FindFileDataLocal);
if(HandlerFilePathLocal==INVALID_HANDLE_VALUE){
Error(3);
FullExit=true;
break;
}
//std::cout<<FindFileDataLocal.cFileName<<std::endl;
FindNextFile(HandlerFilePathLocal, &FindFileDataLocal);
FindNextFile(HandlerFilePathLocal, &FindFileDataLocal);
//std::cout<<FindFileDataLocal.cFileName<<std::endl;
if(!FtpSetCurrentDirectory(ConnectedHandle, "..")){
Error(7);
std::cout<<">>>195<<<"<<std::endl;
FullExit=true;
break;
}
//else std::cout<<"FtpSetCurrentDirectory was done successfully!"<<std::endl;
//идем к тому эленменту, в который зашли
if(!ItemFindLocal(EntrenceDirName, &HandlerFilePathLocal)){
Error(10);
FullExit=true;
break;
}
//если за ним нет ничего - идем снова на родительский уровень
if(FindNextFile(HandlerFilePathLocal, &FindFileDataLocal)) break;
else continue;
}//while
}//else
}//else
}//while
//-------------------------------
CloseHandle(ConnectedHandle);
std::cout<<"Send data finished!"<<std::endl;
LogFile.open((LocalPathToDataFile+"FTPAULog.txt").c_str(), std::ios_base::app | std::ios_base::out);
time( &aclock );                 /* Get time in seconds */
 newtime = localtime( &aclock );  /* Convert time to struct tm form */
LogFile<<"Error : \t\t\t\t\t"<<ErrorString<<std::endl;
LogFile<<"The termination of transfer of the data at\t"<<asctime( newtime )<<std::endl;
LogFile.close();
//Delay(3000);
//RepeatUntillKeyPressed();
return 0;
}//------------------------------------------------------------------------------------------
--------------*/

bool ItemFindLocal(std::string ItemName, HANDLE *HDL){
std::string String1;
HANDLE FindFileHandlerLocal;

FindFileHandlerLocal=FindFirstFile((DirectoryPath+"\\*.*").c_str(), &FindFileDataLocal);
if(FindFileHandlerLocal==INVALID_HANDLE_VALUE) Error(3);
FindNextFile(FindFileHandlerLocal, &FindFileDataLocal);
FindNextFile(FindFileHandlerLocal, &FindFileDataLocal);
String1=FindFileDataLocal.cFileName;
while(ItemName!=String1){
if(!FindNextFile(FindFileHandlerLocal, &FindFileDataLocal)){
return (false);
}//if
String1=FindFileDataLocal.cFileName;
}//while
(*HDL)=FindFileHandlerLocal;
return (true);
}//------------------------------------------------------------------------------------------
--------------*/

bool ParentLevelGo(void){
if(FilePathLocal==DirectoryPath) return (false);
bool CycleExit=false;
for(int i=DirectoryPath.length()-1; !CycleExit;i--){
if(DirectoryPath[i]=='\\') CycleExit=true;
else EntrenceDirName.insert(0, DirectoryPath[i]);
DirectoryPath.replace(i, 1, "");
}//for
return (true);
}//------------------------------------------------------------------------------------------
--------------*/

bool IsItDirectory(void){
if((FindFileDataLocal.dwFileAttributes==FILE_ATTRIBUTE_DIRECTORY)
|| (FindFileDataLocal.dwFileAttributes==48)//Arch
|| (FindFileDataLocal.dwFileAttributes==18)//hidden
|| (FindFileDataLocal.dwFileAttributes==17)//Only Read
|| (FindFileDataLocal.dwFileAttributes==51)//hidden+OR+arch
|| (FindFileDataLocal.dwFileAttributes==19)//hidden+OR
|| (FindFileDataLocal.dwFileAttributes==49)//arch+OR
|| (FindFileDataLocal.dwFileAttributes==50)//hidden+arch
|| (FindFileDataLocal.dwFileAttributes==20)//system dir
|| (FindFileDataLocal.dwFileAttributes==55)//SD+H+A+O
|| (FindFileDataLocal.dwFileAttributes==53)//SD+A+O
|| (FindFileDataLocal.dwFileAttributes==54)//SD+A+H
|| (FindFileDataLocal.dwFileAttributes==23)//SD+H+O
|| (FindFileDataLocal.dwFileAttributes==22)//SD+H
|| (FindFileDataLocal.dwFileAttributes==21)//SD+O
|| (FindFileDataLocal.dwFileAttributes==52)//SD+A
) return (true);
return (false);
}//------------------------------------------------------------------------------------------
--------------*/
bool DataRead(std::string *HostIPOrAddress,
std::string *UserLogon,
std::string *UserPassword,
std::string *FilePathLocal){
char ch;
int k=0;
std::ifstream OpenedFile((LocalPathToDataFile+"FTPAutoUpdateData.txt").c_str());
if(!OpenedFile) return (false);
while(k<4){
OpenedFile.get(ch);
if(ch=='\n'){k++;continue;}
if(ch=='\0') break;
if(OpenedFile.eof()) break;
switch(k){
case 0:
(*HostIPOrAddress)+=ch;
break;
case 1:
(*UserLogon)+=ch;
break;
case 2:
(*UserPassword)+=ch;
break;
case 3:
(*FilePathLocal)+=ch;
break;
default: Error(6);
}//switch;
}//while
OpenedFile.close();
return (true);
}//DataRead//------------------------------------------------------------------------*/

void RepeatUntillKeyPressed(void){
std::cout<<"Press any key..."<<std::endl;
while(!kbhit());
}//void RepeatUntillKeyPressed(void)//--------------------------------------------------------------------*/

bool ConnectToFTPServer(void){
HINTERNET  OpenedInetHandle;
std::string HostIPOrAddress="\0", UserLogon="\0", UserPassword="\0";
//Open internet connection
OpenedInetHandle=InternetOpen("FTPAutoUpdate V1.0", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
if(OpenedInetHandle==NULL){
Error(0);
return (false);
}
std::cout<<"InternetOpen was successfully."<<std::endl;

//Read data for reading data from server - user definition data
if(!DataRead(&HostIPOrAddress, &UserLogon, &UserPassword, &FilePathLocal)){
Error(1);
return (false);
}
std::cout<<"DataRead was done successfully."<<std::endl;
//connect to the server
ConnectedHandle=InternetConnect(OpenedInetHandle, HostIPOrAddress.c_str(), INTERNET_DEFAULT_FTP_PORT,
UserLogon.c_str(), UserPassword.c_str(),INTERNET_SERVICE_FTP,0,0);
if(ConnectedHandle==NULL){
Error(0);
return (false);
}
std::cout<<"InternetConnect was done successfully."<<std::endl;
return (true);
}//----------------------------------------------------------------*/
void HelpData(void){
std::cout<< "*--------------------- Help data ---------------------*"<<std::endl;
std::cout<< "*                                                     *"<<std::endl;
std::cout<< "*  If you has an error about local file message it    *"<<std::endl;
std::cout<< "* mean you have no 'FTPAutoUpdateData.txt' file or    *"<<std::endl;
std::cout<< "* it is empty. Please, fillout it.                    *"<<std::endl;
std::cout<< "*                                                     *"<<std::endl;
std::cout<< "*                  >>>File format<<<                  *"<<std::endl;
std::cout<< "*                                                     *"<<std::endl;
std::cout<< "* The first string must contain host IP or it name,   *"<<std::endl;
std::cout<< "* next string - user login,                           *"<<std::endl;
std::cout<< "* next string must contain user password,             *"<<std::endl;
std::cout<< "* next string - full quality name to local directory, *"<<std::endl;
std::cout<< "* each contain your files to transfere.               *"<<std::endl;
std::cout<< "*                                                     *"<<std::endl;
std::cout<< "*                       Written by Didusenko Maksim.  *"<<std::endl;
std::cout<< "*                                  [email protected]  *"<<std::endl;
std::cout<< "*******************************************************"<<std::endl;
}//HelpData//------------------------------------------------------------------------------------------
------
void Error(int Type){
// char ch;
switch(Type){
case 0:
//PrintOut(-1, GetLastError());
//std::cout<<"Error # "<<GetLastError()<<" !!!"<<std::endl;
// CreateErrorLog(GetLastError());
break;
case 1:
ErrorString="Can't read data from local directory! It may be empty.";
break;
case 2:
ErrorString="Can't read data from local directory! It was not defined!";
break;
case 3:
ErrorString="Can't read data from defined local directory!";
break;
case 4:
ErrorString="Can't create directory on sever!";
break;
case 5:
ErrorString="Can't write down file on sever!";
break;
case 6:
ErrorString="Can't undefined item in DataRead switch!";
break;
case 7:
ErrorString="Can't set current directory on server!";
break;
case 8:
ErrorString="Error!!! Can't set current local directory!";
break;
case 9:
ErrorString="Can't find local directory!";
break;
case 10:
ErrorString="Current item was not found!";
break;
case 11:
ErrorString="File can't put on srver!";
break;
default:
ErrorString="Uncknow error!";
break;
}//switch
if(GetLastError()==12029){
ErrorString="Server not found";
std::cout<<ErrorString<<std::endl;
}//if
else{
if(Type>11){
std::cout<<"Error # "<<GetLastError()<<" !!!"<<std::endl;
ErrorString="Uncknow error!";
std::cout<<ErrorString<<std::endl;
}//else
else{
std::cout<<"Error!!! "<<ErrorString<<std::endl;
}//else
}//else
}//Error()//-------------------------------------*/
:baaa
//////////////////////////////////////////////////////////
:baaa
Файл Error.h
#ifndef Drmasiks_Error_Header_File
#define Drmasiks_Error_Header_File
#include <iostream>
void Error(int Type){
// char ch;
switch(Type){
case 0:
//PrintOut(-1, GetLastError());
//std::cout<<"Error # "<<GetLastError()<<" !!!"<<std::endl;
// CreateErrorLog(GetLastError());
break;
case 1:
std::cout<<"Error!!! Can't read data from local directory!"<<std::endl;
std::cout<<"It can be empty!"<<std::endl;
break;
case 2:
std::cout<<"Error!!! Can't read data from local directory!"<<std::endl;
std::cout<<"It was not defined!"<<std::endl;
break;
case 3:
std::cout<<"Error!!! Can't read data from defined local directory!"<<std::endl;
std::cout<<">>> Panic <<<"<<std::endl;
break;
case 4:
std::cout<<"Error!!! Can't create directory on sever!"<<std::endl;
break;
case 5:
std::cout<<"Error!!! Can't write down file on sever!"<<std::endl;
std::cout<<">>> Panic <<<"<<std::endl;
break;
case 6:
std::cout<<"Error!!! Can't undefined item in DataRead switch!"<<std::endl;
std::cout<<">>> Panic <<<"<<std::endl;
break;
case 7:
std::cout<<"Error!!! Can't set current directory on server!"<<std::endl;
break;
case 8:
std::cout<<"Error!!! Can't set current local directory!"<<std::endl;
break;
case 9:
std::cout<<"Can't find local directory!"<<std::endl;
break;
case 10:
std::cout<<"Current item was not found!"<<std::endl;
break;
case 11:
std::cout<<"File can't put on srver!"<<std::endl;
break;
default:
std::cout<<"Uncknow error!"<<std::endl;
break;
}//switch
std::cout<<"Error # "<<GetLastError()<<" !!!"<<std::endl;
}//Error()//-------------------------------------*/

#endif
:baaa
PM MAIL ICQ   Вверх
Step
Дата 21.12.2002, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



Не так дело не пойдетDrMasik ты ж ему подумать не даеш, а сразу код лепишь, у него ж прогресса не будет


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Step
Дата 21.12.2002, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



DrMasik к стати такие коды лучше по мылу отпровляй, кому надо будет сам попросит.


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
DrMasik
Дата 22.12.2002, 07:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 13.12.2002

Репутация: нет
Всего: нет



Согласен, что подумать не дам. Хотя, если он будет не просто читать и вставлять, а еще и разберется почему так, а не иначе, хотя иногда можно и иначе, это и так ясно, он будет учиться... Как говорил мой учитель:"научился писать - научись читать..."
PM MAIL ICQ   Вверх
DrMasik
Дата 22.12.2002, 07:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 13.12.2002

Репутация: нет
Всего: нет



Дело в том, что я уже не один раз столкнулся с тем, что такого мыла уже не существует, и дабы у людей не возникало бодобных ситуаций я сделал то. что сделал!
PM MAIL ICQ   Вверх
XpyDi
Дата 22.12.2002, 07:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 25.11.2002
Где: USSR

Репутация: нет
Всего: 2



Прощу прощения за флейм, но по-поводу кода на прошлой странице я считаю найлучшим вариантом держать хостинг где-нибудь на narod.ru(или что-то в этом роде), куда и скидывать подобные файлы, а те кому это действительно необходимо качали бы уже себе на винчестер.
PM MAIL WWW ICQ   Вверх
Unregistered
Дата 4.2.2003, 08:19 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











вот млин ... чел поджелдился инфой ..а вы его критикуете :-)
гы . и при этом хацкер растет :-))) гы гы ...
А потому еще попросит как пароль поменять на машине , путем использования ВинАпи :-))) гы
  Вверх
Baa
Дата 4.2.2003, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



Кстати, про записать файл wink.gif ведь есть запрос PUT wink.gif


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
dim
Дата 4.2.2003, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 24.12.2002

Репутация: нет
Всего: нет



Цитата

Кстати, про записать файл  ведь есть запрос PUT

Ни один нормальный хостинг провайдер не разрешает такого запроса на своих веб серверах.
--------------------
that's all
PM MAIL   Вверх
Baa
Дата 4.2.2003, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



dim речь была не о провайдерах, а о возможности wink.gif


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
dim
Дата 4.2.2003, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 24.12.2002

Репутация: нет
Всего: нет



Baa Да, но практически получается, что использовать такую возможность весьма проблемно, поскольку подавляющее большинсотво паблик вебсайтов размещены на различных хостингах. Кроме того возможность записи на чужой вебсайт (не принадлежащий, тому кто собрался писать) вообще исключается, потому что для таких вещей надо проходить аутентификацию.
--------------------
that's all
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1356 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.