_MED23v30stringConvert.c
Aller à la documentation de ce fichier.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include <med.h>
00020 #include <med_config.h>
00021 #include <med_outils.h>
00022 #include <string.h>
00023
00024
00025
00026
00027
00028 med_err _MED23v30stringConvert(char *chaine30, med_int substrsize30,
00029 char *chaine23, med_int substrsize23,
00030 med_int nsubstr )
00031 {
00032 int i,j;
00033 med_int _substrsize23 = substrsize23;
00034 med_int _nsubstr = 0;
00035 med_int _realnsubstr = 0;
00036 int _lenchaine23 = 0;
00037
00038 if ( substrsize30 < substrsize23 ) return -1;
00039
00040 _lenchaine23 = strlen(chaine23);
00041 _realnsubstr = _lenchaine23/substrsize23;
00042
00043 if ( ( _realnsubstr < nsubstr) && _lenchaine23 ) {
00044
00045
00046
00047
00048
00049
00050 _nsubstr=_realnsubstr+1;
00051 }
00052 if (_realnsubstr == nsubstr ) _nsubstr=nsubstr;
00053
00054
00055
00056
00057
00058
00059
00060 for (i=0;i<_nsubstr;i++) {
00061 strncpy(chaine30+i*substrsize30,
00062 chaine23+i*substrsize23,
00063 substrsize23);
00064
00065 if ( (i == (_nsubstr-1) ) &&
00066 (_realnsubstr != nsubstr ) ) _substrsize23=_lenchaine23-_realnsubstr*substrsize23;
00067
00068 for (j=_substrsize23;j<substrsize30;j++) {
00069 *(chaine30+i*substrsize30 + j)=' ';
00070 }
00071 }
00072 *(chaine30+_nsubstr*substrsize30) = '\0';
00073
00074
00075
00076 return 0;
00077 }