📄 ftpwritefile.cpp
字号:
#include <string.h>
#include <stdio.h>
#define TRUE 1#define FALSE 0
#define FTP_FILENAME "ppp-on"
#define TELEPHONE_LEN 16
#define USER_NAME_LEN 10
#define PASSWORD_LEN 8
struct FTP_BASIC_INFO{
char TELEPHONE[TELEPHONE_LEN+1];
char ACCOUNT[USER_NAME_LEN+1];
char PASSWORD[PASSWORD_LEN+1];
};
enum FTPINSTRUCT { User, Bi, Lcd, Put, Get, Delete, Bye};
//*******************************************//
//向脚本文件中追加一条操作,str1,str2为参数
//*******************************************//
int AddFtpInfo(const char *FileName, FTPINSTRUCT FtpIns, const char *str1, const char *str2){
FILE* pFile;
char pData[256];
memset(pData, 0, 256);
pFile = fopen( FileName, "rb+" );
if (pFile == NULL)
{
return FALSE;
}
switch(FtpIns)
{
case User:
sprintf(pData, "user %s %s\n",str1, str2);
break;
case Bi:
sprintf(pData, "bi\n");
break;
case Lcd:
sprintf(pData, "lcd %s\n",str1);
break;
case Get:
sprintf(pData, "get %s\n",str1);
break;
case Put:
sprintf(pData, "put %s\n",str1);
break;
case Delete:
sprintf(pData, "delete %s\n",str1);
break;
default:
break;
}
// 定位文件指针
if(fseek( pFile, 0, SEEK_END ))
{
fclose(pFile);
return FALSE;
}
if(fwrite( pData, strlen(pData), 1, pFile) != 1)
{
fclose(pFile);
return FALSE;
}
fclose(pFile);
return TRUE;
}
//*******************************************//
//创建一个文件
//*******************************************//
int CreateFile(const char *FileName)
{
FILE* pFile;
pFile = fopen( FileName, "wb+" );
if (pFile == NULL)
{
return FALSE;
}
fclose(pFile);
return TRUE;
}//*******************************************//
//修改FTP拨号脚本文件中的FTP_BASIC_INFO结构
//*******************************************//
int ModifyFtpBasicInfo(struct FTP_BASIC_INFO * stFtpBasicInfo)
{
FILE* pFile;
int lFileLen;
pFile = fopen( FTP_FILENAME, "rb+" );
if (pFile == NULL)
{
return FALSE;
}
// 定位文件指针到文件尾位置
if(fseek( pFile, 0, SEEK_END ))
{
fclose(pFile);
return FALSE;
}
lFileLen = ftell( pFile );
char* cTemp = new char [lFileLen + 1];
if(fseek( pFile, 0, SEEK_SET ))
{
fclose(pFile);
delete [] cTemp;
return FALSE;
}
// 获取文件信息
if (fread( cTemp, lFileLen, 1, pFile ) != 1)
{
fclose(pFile);
delete [] cTemp;
return FALSE;
}
cTemp[lFileLen] = '\0';
char *pdest;
pdest = strstr(cTemp, "TELEPHONE=");
if(pdest != NULL)
{
pdest = pdest+strlen("TELEPHONE=");
memset(pdest, 0x20, TELEPHONE_LEN);
memcpy(pdest, stFtpBasicInfo->TELEPHONE, strlen(stFtpBasicInfo->TELEPHONE) );
}
pdest = strstr(cTemp, "ACCOUNT=");
if(pdest != NULL)
{
pdest = pdest+strlen("ACCOUNT=");
memset(pdest, 0x20, USER_NAME_LEN);
memcpy(pdest, stFtpBasicInfo->ACCOUNT, strlen(stFtpBasicInfo->ACCOUNT) );
}
pdest = strstr(cTemp, "PASSWORD=");
if(pdest != NULL)
{
pdest = pdest+strlen("PASSWORD=");
memset(pdest, 0x20, PASSWORD_LEN);
memcpy(pdest, stFtpBasicInfo->PASSWORD, strlen(stFtpBasicInfo->PASSWORD) );
}
// 定位文件指针
if(fseek( pFile, 0, SEEK_SET ))
{
fclose(pFile);
delete [] cTemp;
return FALSE;
}
if(fwrite( cTemp, lFileLen, 1, pFile) != 1)
{
fclose(pFile);
delete [] cTemp;
return FALSE;
}
fclose(pFile);
delete [] cTemp;
return TRUE;
}
int main(void){
struct FTP_BASIC_INFO stFtpBasicInfo;
memset(&stFtpBasicInfo,0, sizeof(FTP_BASIC_INFO) );
strcpy(stFtpBasicInfo.TELEPHONE,"0532-6016013");
strcpy(stFtpBasicInfo.ACCOUNT,"163");
strcpy(stFtpBasicInfo.PASSWORD,"8163");
if(ModifyFtpBasicInfo(&stFtpBasicInfo) != TRUE)
return -1;
if(CreateFile("up.txt") != TRUE)
return -1;
if(AddFtpInfo("up.txt", User, "ppp", "123567") != TRUE)
return -1;
if(AddFtpInfo("up.txt", Bi, NULL, NULL) != TRUE)
return -1;
if(AddFtpInfo("up.txt", Lcd, "/usr/data/", NULL) != TRUE)
return -1;
if(AddFtpInfo("up.txt", Put , "baogao.rar", NULL) != TRUE)
return -1;
return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -