char s[30]="1,08/29/2009 08:16,123";
GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, T);
UnicodeString datet;
TDateTime dd;
for (int i = 0; i < 30; i++) {
if(s!=T.Separator&&s!='\n'&&s!='\0')
datet=datet+(UnicodeString)s;
else if((s==T.Separator)||(s=='\n')
||(!ispunct(s))|| (!isdigit(s))){
pos++;
if(pos==2){
dd=StrToDateTime(datet);
break;
}
datet="";
}
}
ShowMessage(datet);
DecodeDate(dd,Y,M,D);
DecodeTime(dd,H,MM,ms,ms);
char символ в unicodeString
datet выводит как "0".
Код:
Идея такова, что программа ищет второй разделить в строке, то есть ",".
И строку до него преобразует в дату.
В настройках также стоит List Separator- запятая.
Может быть неправильно работает преобразование (UnicodeString)s?
Как можно преобразовать символ char в UnicodeString иным способ?
MultiByteToWideChar() подойдет?
Код:
UnicodeString s = "1,08/29/2009 08:16,123";
Ну вроде я могу использовать конструктор UnicodeString(char) без проблем?
Народ, будьте умней, не используйте никаких String, AnsiString, UnicodeString - используйте просто char и не будет у вас никаких проблем
Цитата: RabiatoR
Народ, будьте умней, не используйте никаких String, AnsiString, UnicodeString - используйте просто char и не будет у вас никаких проблем
Дельный совет :) Юникодовские строки тоже запихивать в char?