С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Katy
2 / 2 / 0
Регистрация: 16.06.2007
Сообщений: 9
1

Проблема с конвертацией.

16.06.2007, 16:19. Просмотров 1952. Ответов 8
Метки нет (Все метки)

У меня такая проблема.

В StringGrid есть список дат в виде дд.мм.гггг. Делю на лексемы(день, месяц, год) . Надо определить самую ранню и самую позднюю даты, для чего пытаюсь перекатать даты в int с помощью StrToInt (по частям естественно), а C++ выдаёт ошибку типов (что там не integer).

А выше по тексту (Четает из MaskEdit) всё работает!!!

Что делать?


P.S. ожет можно сделать как то проще?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2007, 16:19
Ответы с готовыми решениями:

Непонятки с конвертацией типов
Краткое описание примера. Определен класс Foo, единственное поле которого --...

Проблема с конвертацией в Excel
Нужна помощь чайнику, Отчет, созданный в 1С бухгалтерии конвертирован в Excel,...

Проблемы с конвертацией скриптов
Всем привет. Возникла необходимость переделать ВБ скрипт на джавовский....

Проблемы с конвертацией из 97 в 2000 access ...
Привет All! Проблема такова: Имеем NT 4.0 Eng SP6a + IIS 5.0 ... На серванте...

Затруднения с конвертацией html в Wordpress
Крч я интегрировал главную стр. не разбивая ее на headphp footer и.т.д, но есть...

8
mik-a-el
Администратор
72756 / 42047 / 241
Регистрация: 10.04.2006
Сообщений: 12,777
16.06.2007, 19:18 2
Цитата Сообщение от Katy
В StringGrid есть список дат в виде дд.мм.гггг. Делю на лексемы(день, месяц, год) . Надо определить самую ранню и самую позднюю даты, для чего пытаюсь перекатать даты в int с помощью StrToInt (по частям естественно), а C++ выдаёт ошибку типов (что там не integer).
Сортировка не помогает?
0
Katy
2 / 2 / 0
Регистрация: 16.06.2007
Сообщений: 9
17.06.2007, 10:50  [ТС] 3
Сортировка не совсем то, что нужно, так как нужен доступ к значениям месяцев.
(Нужно определить вкакую пору года родилось больше всего человек из списка).
Сомневаюсь, что сортировка спасёт.
0
mik-a-el
Администратор
72756 / 42047 / 241
Регистрация: 10.04.2006
Сообщений: 12,777
17.06.2007, 12:21 4
Данные откуда берутся?
0
Katy
2 / 2 / 0
Регистрация: 16.06.2007
Сообщений: 9
17.06.2007, 12:30  [ТС] 5
Данные берутся из StringGrid, но должна быть возможным в StringGrid загнать из файла *.txt, а потом обработать. (А изначально в String Grid вносим из MaskEdit) т.е. MaskEdit-StringGrid-*.txt-StringGrid
0
mik-a-el
Администратор
72756 / 42047 / 241
Регистрация: 10.04.2006
Сообщений: 12,777
17.06.2007, 12:41 6
Я думал может из базы, тогда было б совсем просто

Цитата Сообщение от Katy
Надо определить самую ранню и самую позднюю даты, для чего пытаюсь перекатать даты в int с помощью StrToInt (по частям естественно), а C++ выдаёт ошибку типов (что там не integer).
Код можешь показать? И текст ошибки.
0
Katy
2 / 2 / 0
Регистрация: 16.06.2007
Сообщений: 9
17.06.2007, 13:12  [ТС] 7
текст не работающей функции:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
void __fastcall TForm1::Button6Click(TObject *Sender)
{
int n,i;
n=StringGrid1->ColCount;
int masd[3][100];
int d,m,g;
char *date;
AnsiString ds,ms,gs;
 
 for(i=1;i<=n;i++)
  {
   //int k;
  // k=i;
   date=strtok((StringGrid1->Cells[3][i]).c_str(),".");
        for (int j=0; j<3; j++)
         {
          if (j==0)
           {
            ds=date;
            date=strtok(NULL,".");
           }
          if (j==1)
           {
            ms=date;
            date=strtok(NULL,".");
           }
          if (j==2)
           {
            gs=date;
            date=strtok(NULL,".");
           }
         }
  
 
 
    masd[0][i-1]=StrToInt(ds);.// отсюда не идёт.
     masd[1][i-1]=StrToInt(ms);
     masd[2][i-1]=StrToInt(gs);
 
 
 
int max=0, min=0;
 
  for(int kol=1;kol<=n;kol++)
    {
    if  ((masd[2][kol]>masd[2][max])||((masd[2][kol]==masd[2][max])&&
    (masd[1][kol]>masd[1][max]))||((masd[2][kol]==masd[2][max])&&
    (masd[1][kol]==masd[1][max])&&(masd[0][kol]>masd[0][max])))
 
         {max=kol;} ;
 
     if  ((masd[2][kol]<masd[2][min])||((masd[2][kol]==masd[2][min])&&
         (masd[1][kol]<masd[1][min]))||((masd[2][kol]==masd[2][min])&&
         (masd[1][kol]==masd[1][min])&&(masd[0][kol]<masd[0][min])))
 
         {min=kol;}  ;
 
}    
 
//}
}
а ошибку выдаёт такую:

ProjectProject1.exe raisedexcaption class EConvertError with massege '''is not valid value'.
Process stoped. Use Step or Run to continue.
0
Вложения
Тип файла: txt Unit1.txt (12.3 Кб, 57 просмотров)
Lord_Voodoo
Супер-модератор
8611 / 2248 / 133
Регистрация: 07.03.2007
Сообщений: 10,840
Завершенные тесты: 1
18.06.2007, 09:20 8
я бы на твоем месте strtook не юзал, вот функция деления, работает нормально в рабочем софте протестирована:
void AnalizeAnswer(AnsiString Text, TStringList* Block, char Delimiter)
{
AnsiString Str = Text, tmp = "";
while(!Str.IsEmpty()){
if(!Str.Pos(AnsiString(Delimiter))) break;
tmp = ((Str.SubString(1, Str.Pos(AnsiString(Delimiter)) - 1)).TrimLeft()).TrimRight();
Block->Add(tmp);
Str.Delete(1, Str.Pos(AnsiString(Delimiter)));
}
if(!Str.IsEmpty()){
tmp = ((Str).TrimLeft()).TrimRight();
Block->Add(tmp);
}
}
и будешь себе спокойно анализировать TStringList, это надежнее и эффективнее, главное память не забывать чистить!
0
Katy
2 / 2 / 0
Регистрация: 16.06.2007
Сообщений: 9
21.06.2007, 03:19  [ТС] 9
Спасибо, вроде прога зароботала!!!
0
21.06.2007, 03:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2007, 03:19

Проблемы с конвертацией Mime в Richtext
И вот такая теперь у меня проблема. Пришло письмо в лотус из OutLook. Оно в...

Выборка из DataTable через лямбда с конвертацией
Очень простой вопрос. есть выражение double s =...

О качестве звука при записи АУДИО cd с конвертацией из flac
По запросу Mich'а были даны рекомендации, как аудиозапись в формате flac...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru