📄 readini.cpp
字号:
#include "stdafx.h"
char *Ltrim(char *text)
{
int i,maxlen;
maxlen=strlen(text);
for(i=0;i<maxlen;i++)
if(text[i]!=' '&&text[i]!='\t') break;
if(i<maxlen)
strcpy(&text[0],&text[i]);
else
strcpy(text,"");
return text;
}
char *Rtrim(char *text)
{
int i,maxlen=strlen(text);
for(i=maxlen-1;i>0;i--)
{
if(text[i]=='\r'||text[i]=='\n'||text[i]==' '||text[i]=='\t')
text[i]=0x0;
else break;
}
return text;
}
char *TrimNote(char *text)
{
int i,j,maxlen=strlen(text);
for(i=0;i<maxlen;i++)
if(text[i]==';') break;
for(j=i;j<maxlen;j++) text[j]=0x0;
maxlen=strlen(text);
for(i=maxlen-1;i>0;i--)
{
if(text[i]==' '||text[i]=='\t')
text[i]=0x0;
else break;
}
return text;
}
char *SplitNote(char *text, char *note )
{
int i,maxlen=strlen(text);
for(i=0;i<maxlen;i++)
if(text[i]==';') break;
if(i<maxlen-1)
{
strcpy(note,&text[i+1]);
Ltrim(note);
}
else
strcpy(note,"");
return note;
}
void SplitTextAndNote(char *stext, char *text, char *note)
{
strcpy(text,stext);
TrimNote(text);
SplitNote(stext,note);
}
char *GetProfile(char *Profile,char *Section,char *Field, char *Value )
{
FILE *stream;
int Slen,Flen,found=0;
char TempValue[256], *ptr;
Slen=strlen(Section);
if(Slen==0) found=1;
Flen=strlen(Field);
if((stream=fopen(Profile,"rt"))==NULL) return NULL;
fseek(stream, 0L, SEEK_SET);
while(!feof(stream))
{
memset(TempValue,0x0,256);
fgets(TempValue,256,stream);
Ltrim(TempValue);
if(TempValue[0]==';') continue;
if(TempValue[0]=='['&&TempValue[Slen+1]==']')
{
if(strstr(TempValue,Section)) found=1; else found=0;
continue;
}
if(found==1&&strstr(TempValue,Field)==TempValue)
{
if(TempValue[Flen]=='='||TempValue[Flen]==' ')
{
ptr=strchr(TempValue,'=');
if(ptr++) strcpy(Value,ptr);
Ltrim(Value);
Rtrim(Value);
found=2; break;
}
else continue;
}
}
fclose(stream);
if(found==2) return Value;
else return NULL;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -