������ � ������-������� :: �/C++ :: ���������������� (original ) (raw )
������� �������� �������� ���������� ������� ������� ��� .
������ � ������-������� ���� ��������=��������| |
| |
| |
| |
wsx ��������� ���������������, ������� ������: ����������� ���������: 1074������� ������������: 28��������� ������������: 1 ���� ����������� �� ������:14 ���. 2005
������� | �������� ����������
������������ NEW! ��������� ����������: 8 ������� 2005 10:49 � ���� ��� ���� �� ������� ��... ������ GNU C...��� ��� ��� �������...������ �����...
������
4X_Pro ������������ ���������������� ������������ ������: ����������� ���������: 2994������� ������������: 79���� ����������� �� ������:29 ���. 2001
������� | �������� ����������
������������ NEW! ��������� ����������: 8 ������� 2005 11:24 �� ����� ���� ���� �����. ����� � �� ������ ���: � ������������ - ����������� � ����������� ����, ��� ���� ���������� "�������" ���� ����� �� ������� = � ���������� �� � ���� ��������: parameter � value. ��������������, � ������ ���� 2 ������: getvalue � setvalue, ������� �������� � ������������� �������� ���������������� ���������. ��� ������� ����� ������� ��� ��������� ������, �� �� ����, ����� �� ���� ���.�������� ������ � ���, ���� �� � "�����" C ������������ ������� (����� Perl � PHP ���� ��� ��� ������� ����� ����������), ����� ������� � ��� ��������� ������ ����������.��������������, � ����������� (� ����� - � ��������� �������, ���������� �� �����������) ����� ������� ���������� ���� �������� � ����.---������ ������� ������ ����� �����, ��� �� ����� ���� ������� ����������. �������� ������ � �����: ������� ������ �� ����� ��� ������.
������
wsx ��������� ���������������, ������� ������: ����������� ���������: 1074������� ������������: 28��������� ������������: 1 ���� ����������� �� ������:14 ���. 2005
������� | �������� ����������
������������ NEW! ��������� ����������: 8 ������� 2005 11:26 �������....������, ��� �����, ����������, ��� �������....����...���� ���� ��...�� ����� ����� �������� ??��...���������, � �� ����� ��� ������ ����� ������� ? ���...��� ����� ����� ���� ����������� ����� ������� ����... ����������� � ������� �������� - �������� ����!
������
4X_Pro ������������ ���������������� ������������ ������: ����������� ���������: 2994������� ������������: 79���� ����������� �� ������:29 ���. 2001
������� | �������� ����������
������������ NEW! ��������� ����������: 8 ������� 2005 11:34 � ��� ������� � ������ �� �����:int pos;FILE* fh;char buffer[MAXLEN]; // MAXLEN - ����. ����� ������int counter=0; // ���������� ����� (�fh=fopen(filename,"r");if (fh==NULL) { ��������� ������ }else { fscanf(fh,"%s",buffer); // ����� ��� ���� ��������, ��� �������, ����� �� ��������� ������� � ����. ������ ������ pos=0; whle (buffer[pos] && buffer[pos]!='=') pos++; if (pos) { params[counter]=malloc(pos-1); // ��������� ������ ��� �������� values[counter]=malloc(strlen(buffer)-pos); // ��������� ������ ��� �������� (��� ����� ����, ����� ����� �������� � �������?) memcpy(params[counter],buffer,pos-1); // ����������� ��������� �� ������ ������ strcpy(values[counter],buffer+pos+1); // ����������� �������� �� ����� ������ counter++; }}fclose(fh);---������ ������� ������ ����� �����, ��� �� ����� ���� ������� ����������. �������� ������ � �����: ������� ������ �� ����� ��� ������.
������
kolian ������������ ���������: 9������� ������������: 2���� ����������� �� ������:9 ���. 2005
������� | �������� ����������
������������ NEW! ��������� ����������: 9 ������� 2005 18:25 � �������� �� ������� ���� ���� ���������� ������ �� ��������. ���� ������� ��������� ����. ---Real programmers don't comment their code. It was hard to write, it should be hard to understand.
������
| kolian ������������ ���������: 9������� ������������: 2���� ����������� �� ������:9 ���. 2005 | ������� | �������� ���������� | ������������ NEW! ��������� ����������: 9 ������� 2005 18:32��������� ���������������: 9 ������� 2005 23:50 ��� ����� ������� � �������.#include <stdio.h>#include <stdlib.h>#include <string.h>/* *��������������� ������� *���������� ����� ������� � ������, ���������� ����� ������� *��� ����, ���� �������� ������ ���������� * *������� ���������: * str - ������, � ������� ���������� ������������ * nom - ����� ��������, ������� � �������� ����� ����������� ����� * *������������ �������� - ����� �������, ����� �������� ����� ������� * */int get_parm_offset(char * str,int nom){ while((str[nom]!=',')&&(str[nom]!=';')&&(str[nom]!='\0')) nom++; if((str[nom]==';')||(str[nom]=='\0')) return 0; return(++nom);}/* *������� conv_string() ��������� �������������� *���������� �� ��������� �� ���������� ���� � �������������. *������� ���������: * str - ��������-������ *�������� ���������: * save_buffer - ����� ���������� ,���� ������� ��������� ��������(�) * *������������ �������� - ���������� ���������, ���������� � ����� - �� ����!!! */int conv_string(char *str,int *save_buffer){ int nom=0; /*����� ���������� ������� ����� ������� � ������-���������*/ int count=0; /*save first elem. from the string*/ if(sscanf(str,"%d,",&save_buffer[count])>0) count++; while ((nom=get_parm_offset(str,nom))!=0) sscanf(str+nom,"%d,",&save_buffer[count++]); return count;}/* *������� read_sec_parm() ��������� �������� *�������� �������� ������ *�� ��������� ����������������� ����� * *������� ���������: * filename - ��� ����� * sect_num - ��� ������ * parm_name - ��� ��������� *��������: * save_buffer - �����,���� ������� ��������� �������� * save_size - ��� ����� *������������ �������� - ��� ������ */int read_sec_parm(char *filename,char *sect_name,char *parm_name,char *save_buffer,size_t save_size){ FILE *cfg_file; /*��������� �� ���������������� ����*/ char Order[4000]; /*��� ������*/ char buf[4000]; /*��������� ����� ������ �� �����*/ int num_char=0; memset(Order,' ',sizeof(Order)); /*�������� ����������������� ����� �� ������*/ cfg_file=fopen(filename,"r"); if(cfg_file==NULL) { perror("Cfg.c:fopen()");return -1; } /*���������� ������������ �����*/ while(fgets(buf,sizeof(buf),cfg_file)!=NULL) { int i=0; char ch=buf_;/*��������� ����������, � ������� ��������� ������*/ /* *���������� ������ �� ������ ������ *(���������� �������� ��������+���������) */ while((ch==' ')||(ch=='\t')) ch=buf[++i]; /* *���� ���������� ������ ����������� ��� ����� ������, �� �������������� *������� �� ��������� ������ */ if ((ch=='#')||(ch==';')||(ch=='\n')) continue; /*���������� ������*/ if(sscanf(buf+i,"[%s]",Order)!=0) continue; /*���� ������ �� ���� �� ������ ������������ ������������*/ if (strncmp(sect_name,Order,strlen(sect_name))!=0) continue; /*��������� �������� ����������*/ if (strncmp(parm_name,buf+i,strlen(parm_name))!=0) continue; int j=i;/*����� ���������� ������� � ������*/ ch=buf[j]; /*������ ' ' �������� ����������*/ while((ch!='\t')&&(ch!=';')&&(ch!='#')&&(ch!='\n')) ch=buf[++j]; num_char=j-(i+strlen(parm_name)+sizeof('=')); if(num_char>=save_size) {num_char=-1;break;} strncpy(save_buffer,&buf[i+strlen(parm_name)+sizeof('=')],num_char); save_buffer[num_char]=0; break; } /*�������� �����*/ fclose(cfg_file); return num_char;}_ ---Real programmers don't comment their code. It was hard to write, it should be hard to understand. |
| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| | ������ | | |
kolian ������������ ���������: 9������� ������������: 2���� ����������� �� ������:9 ���. 2005
������� | �������� ����������
������������ NEW! ��������� ����������: 9 ������� 2005 18:35 P.S. ��� � ������� �� ���������. ������ � �� ���� �����������---Real programmers don't comment their code. It was hard to write, it should be hard to understand.
������
eugrus �������� ������� ����� ���������: 195������� ������������: 11���� ����������� �� ������:14 ���. 2005
������� | �������� ����������
������������ NEW! ��������� ����������: 9 ������� 2005 22:37 kolian ������� �� ����! ����� ������ ����������(�� ��������� �������� ��������� ������� )---Russian UNIX Forums
������
kolian ������������ ���������: 9������� ������������: 2���� ����������� �� ������:9 ���. 2005
������� | �������� ����������
������������ NEW! ��������� ����������: 9 ������� 2005 23:20 ���� ��� ���������� ����� ������������, �� � ����� �� ����� ��������:���������������� ���� ������� �� ������, ���������� � ������������. ������ ������� �� ����������. ������ ���������� � ����� ������ � �������� ����������� ����� ��������� �[� � �]� ��� ������. �������� ���������� � ����� ������ � ������� ����� �� ����������� ����� ������ ��� ������� ��������� � ������� �� �������� ���������, ����� �������� ����� ������ �=� � ��������, �������������� ����� ������� �=�. ���� �������� �������� �������������, �� ������� �� ���������� ����������� �������� �,� ���������. ����������� ���������� ���� � ����� ������, ���� � ����������� ������� ������ � ������� �� ������� �#� ��� �;� � ������������ ������ �����������. ������� ����������� �������� ��������������. � ����� ������ � ����� ��������� �� ����������� ������� �������. � �������� ��������� ����������� ������� �������. � ����� ��������� �������������.������[���_������] ; ����� ��������������_���������=�������� ��������� ���_���������=�������� ��������� 1, �������� �������� 2� ��� ������ ��������� ����� ������������:[tcp_device1] #~ ip=192.168.2.2 #~ ip=192.168.253.15 ip=127.0.0.1 port=10002[tcp_device2] #~ ip=192.168.2.2 ip=127.0.0.1 port=10000[Errors] Err0=0 Err1=6,20,1,2,45,1,2,56,1,2,47,1,2,42---Real programmers don't comment their code. It was hard to write, it should be hard to understand.
������
kolian ������������ ���������: 9������� ������������: 2���� ����������� �� ������:9 ���. 2005
������� | �������� ����������
������������ NEW! ��������� ����������: 9 ������� 2005 23:36 ����� � ����Configuration File Library 1.0Configuration File Library (CFL) - ����������� ����������, ��������� ���������� "� ����" �� ������ ANSI C, ���������� ��������� ������ � ����������������� ���������� �������. �������� ��� ���������� � tar.gz � rpm.�����������: http://freshmeat.net/projects/cfl/ ���������: http://download.gna.org/cfl/cfl-1.0.tar.gz ---Real programmers don't comment their code. It was hard to write, it should be hard to understand.
������
wsx ��������� ���������������, ������� ������: ����������� ���������: 1074������� ������������: 28��������� ������������: 1 ���� ����������� �� ������:14 ���. 2005
������� | �������� ����������
������������ NEW! ��������� ����������: 10 ������� 2005 9:31 ���...��������� � ����� �� ������ ��� ���������...�������� ����������� � �������������! ����� �� ������ ����� ���������� ?! - ��� ������ ��� ��� ������.��� ����, ���� �� �������� �������� ����, �������� ���� ��� ��������:Format StringBufferOverflow..���� � ��� ������ �� �����������.... ���� ����� ����������! � ����� �������!
������
kolian ������������ ���������: 9������� ������������: 2���� ����������� �� ������:9 ���. 2005
������� | �������� ����������
������������ NEW! ��������� ����������: 10 ������� 2005 11:51��������� ���������������: 10 ������� 2005 12:15 wsx �������:[q] ���...��������� � ����� �� ������ ��� ���������...�������� ����������� � �������������! ����� �� ������ ����� ���������� ?! - ��� ������ ��� ��� ������.[/q]��� ��!!!wsx �������:[q] ��� ����, ���� �� �������� �������� ����, �������� ���� ��� ��������:Format StringBufferOverflow..���� � ��� ������ �� �����������.... ���� ����� ����������! � ����� �������! [/q]���� ��������� ����:���� � ���������������� ����� �������� ������ ����� 4000 �������� �� ��� ����� ����������� ����������.���� ����������� �� ��������� ������---Real programmers don't comment their code. It was hard to write, it should be hard to understand.
������
wsx ��������� ���������������, ������� ������: ����������� ���������: 1074������� ������������: 28��������� ������������: 1 ���� ����������� �� ������:14 ���. 2005
������� | �������� ����������
������������ NEW! ��������� ����������: 15 ������� 2005 11:46 ������ ���! �������������! ��� ������ ���������� ���������� [4000] �����, �� ��������� Buffer Overflow!!P.S.: � ���������� ������ - �������!�������� �������� �� ��� � 15 000 ����� ����, ����� ������ �� �����, �������� � �� ���� �� �������!! ) ������� ��� ��� ����...
������
4X_Pro ������������ ���������������� ������������ ������: ����������� ���������: 2994������� ������������: 79���� ����������� �� ������:29 ���. 2001
������� | �������� ����������
������������ NEW! ��������� ����������: 15 ������� 2005 14:12 ������� ������... ��� ��� ���� ����� ��������� ��������: ��� ������ - ����������� ����, ��� �� ����� ������� ��� �� ��� ������� ��������� ������������. �������, ��������� ������ ������� �� ����, �� ����� ����� ��� ����� ����������� �������: ����� � ������, ��� ������ ����������� ���� ������ �� ���������� ����� (� ������� ������ - �� �������, �� ����������), ����� �� ������� ����� �� ������������ ��������� ����������.---������ ������� ������ ����� �����, ��� �� ����� ���� ������� ����������. �������� ������ � �����: ������� ������ �� ����� ��� ������.
������
wsx ��������� ���������������, ������� ������: ����������� ���������: 1074������� ������������: 28��������� ������������: 1 ���� ����������� �� ������:14 ���. 2005
������� | �������� ����������
������������ NEW! ��������� ����������: 15 ������� 2005 14:14 ����� ���� �� ����������! � �� �� �� �������� � ����������� �����!!!� �������� ���������� ���������� - ������ ��������!������-�� ��� ��� ������!
������
4X_Pro ������������ ���������������� ������������ ������: ����������� ���������: 2994������� ������������: 79���� ����������� �� ������:29 ���. 2001
������� | �������� ����������
������������ NEW! ��������� ����������: 15 ������� 2005 14:54 �����, ������� ��������� ����-����� �� ����� ������?---������ ������� ������ ����� �����, ��� �� ����� ���� ������� ����������. �������� ������ � �����: ������� ������ �� ����� ��� ������.
������
kolian ������������ ���������: 9������� ������������: 2���� ����������� �� ������:9 ���. 2005
������� | �������� ����������
������������ NEW! ��������� ����������: 16 ������� 2005 20:41 XXXX Pro �������:[q] ������� ������... ��� ��� ���� ����� ��������� ��������: ��� ������ - ����������� ����, ��� �� ����� ������� ��� �� ��� ������� ��������� ������������. �������, ��������� ������ ������� �� ����, �� ����� ����� ��� ����� ����������� �������: ����� � ������, ��� ������ ����������� ���� ������ �� ���������� ����� (� ������� ������ - �� �������, �� ����������), ����� �� ������� ����� �� ������������ ��������� ����������. [/q]����� ����� ����� ���������� ������ ���������. � ������ ������������ ��� ��� �������� ������ � ���� ��� �������� � ������� �� ��������.---Real programmers don't comment their code. It was hard to write, it should be hard to understand.
������
kolian ������������ ���������: 9������� ������������: 2���� ����������� �� ������:9 ���. 2005
������� | �������� ����������
������������ NEW! ��������� ����������: 16 ������� 2005 23:30 ���.. ������������� �������������� ��� ����� ���� ��������� ����� ���������: ����������� �������� ������ ��� ������ ��� ������� ����������� �� ������ ������.������������ ��� ��� ��� ������ (�)�.� � ������ ������ ��� ���� ����� ���������� ������ � ��������, ����� � ������ ��� ������� ������ ��������� �� �����. ������� � ����� �� ������� ����: --- Cfg_old.c+++ Cfg_new.c@@ -46,7 +46,15 @@ return count; }+enum cfg_file_errors+{+ E_CFG_S_BUF_SIZE=-1, //����� ������ �� ����� ������ ������� ������ ��� ����������+ E_CFG_I_BUF_SIZE=-2, //����� ������ �� ����� ������� �������+};+/*������������ ����� ������ � ���������������� ����� -1*/+#define MAX_STRING_LEN 4096+ /* *������� read_sec_parm() ��������� �������� *�������� �������� ������@@ -64,8 +72,8 @@ int read_sec_parm(char *filename,char *sect_name,char *parm_name,char *save_buffer,size_t save_size) { FILE *cfg_file; /*��������� �� ���������������� ����*/- char Order[4000]; /*��� ������*/- char buf[4000]; /*��������� ����� ������ �� �����*/+ char Order[MAX_STRING_LEN]; /*��� ������*/+ char buf[MAX_STRING_LEN]; /*��������� ����� ������ �� �����*/ int num_char=0; memset(Order,' ',sizeof(Order));@@ -76,7 +84,10 @@ /*���������� ������������ �����*/ while(fgets(buf,sizeof(buf),cfg_file)!=NULL)- { + {+ if(strlen(buf)==sizeof(buf)-1)+ return E_CFG_I_BUF_SIZE;+ int i=0; char ch=buf[i];/*��������� ����������, � ������� ��������� ������*/@@ -107,7 +118,7 @@ /*������ ' ' �������� ����������*/ while((ch!='\t')&&(ch!=';')&&(ch!='#')&&(ch!='\n')) ch=buf[++j]; num_char=j-(i+strlen(parm_name)+sizeof('='));- if(num_char>=save_size) {num_char=-1;break;}+ if(num_char>=save_size){num_char=E_CFG_S_BUF_SIZE;break;} strncpy(save_buffer,&buf[i+strlen(parm_name)+sizeof('=')],num_char); save_buffer[num_char]=0;---Real programmers don't comment their code. It was hard to write, it should be hard to understand.
������
wsx ��������� ���������������, ������� ������: ����������� ���������: 1074������� ������������: 28��������� ������������: 1 ���� ����������� �� ������:14 ���. 2005
������� | �������� ����������
������������ NEW! ��������� ����������: 17 ������� 2005 9:13 ��������� ��� �������, ������ ������������� � ������� ������������ ����� ��������� ��������...�������� ���������������� ��� � �������� ��� �� �������� ������...����� ��� ��� �������!
������
����� ��������� ���� ���� ���� �������� � ���� "������ �� C++ " (10 ������� 2007 11:02)
������� ������� � ������:
������� ����� ��������� ���������� ������� ��� �� ����� ����� .
����� ���������� �������: 0.0310. ���������� ����������� ��������: 18, ����� ���������� �������� 0.0185