Модераторы: 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











вот млин ... чел поджелдился инфой ..а вы его критикуете :-)
гы . и при этом хацкер растет :-))) гы гы ...
А потому еще попросит как пароль поменять на машине , путем использования ВинАпи :-))) гы
  Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

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

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

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

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


 




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


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

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