Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069

Выдернуть дату с тхт файла

20.07.2014, 00:23. Показов 1819. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добро всем сеньеры
вот таким путем выдергиваю данные с тхт файла данные расположенные в строчку строго по колонкам смотрите фото)
выглядит это так:
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
str->LoadFromFile(ExtractFilePath(Application->ExeName)+"reestr\\Реестр.txt");
AnsiString kv="",fam="",adr="",sum="";
int i=0;
for(int m=0;m<str->Count;m++)
{
i=0;
kv="";fam="";adr="";sum="";
for(;;i++)
  {
  if((int)str->Strings[m].c_str()[i]==(int)' ') break;
  else sum+=str->Strings[m].c_str()[i];
  }
  for(;;i++)
  {
  if((int)str->Strings[m].c_str()[i]!=(int)' ') break;
  }
for(;;i++)
  {
  if((int)str->Strings[m].c_str()[i]==(int)' ') break;
  else fam+=str->Strings[m].c_str()[i];
  }
for(;;i++)
  {
  if((int)str->Strings[m].c_str()[i]!=(int)' ') break;
  }
for(;;i++)
  {
  if((int)str->Strings[m].c_str()[i]==(int)'/') adr+="-";// здесь подправил был пробел вместо тере
  else
  {
  if((int)str->Strings[m].c_str()[i]==(int)'-') break;
  else adr+=str->Strings[m].c_str()[i];
  }
  }
i++;
for(;;i++)
  {
  if((int)str->Strings[m].c_str()[i]==(int)' ') break;
  else kv+=str->Strings[m].c_str()[i];
  }
работает функция нормально, но вот мне понадобилось в переменную вытащить дату, пробую но чтото не коректно получается.
Посоветуйте как реалезовать)
Миниатюры
Выдернуть дату с тхт файла  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.07.2014, 00:23
Ответы с готовыми решениями:

Получения файла *.com из файла *.тхт в кодировке ASCII для корректного рисования через псевдографику
Здравствуйте , задача: Создать программу типа .COM, которая в текстовом режиме выводит с помощью псевдографики изображения заданного...

Вычисление чисел в тхт файле в другой тхт
Здравствуйте! я начал интересоваться паскалем, так вот один мой программный код, который должен открыть файл (input.txt) там храняться...

преобразование АВС.ТХТ в файл 123.ТХТ
Написать программу, преобразующую файл АВС.ТХТ в файл 123.ТХТ. Строки изменяются по следующему правилу: все цифры заменяются на Содержимое...

10
61 / 50 / 12
Регистрация: 25.01.2010
Сообщений: 257
20.07.2014, 04:07
C++
1
2
3
4
5
6
TDateTime CurrentDate, dd;//объявляем переменные типа дата
TStringList * dt = new TStringList;
dt->Add(DateToStr(CurrentDate));
dt->SaveToFile("dt.ddd");//сохраняем в файл
dt->LoadFromFile("dt.ddd");
dd = StrToDate(dt->Strings[0]);//достаем из файла
1
Модератор
 Аватар для D1973
9910 / 6447 / 2455
Регистрация: 21.01.2014
Сообщений: 27,370
Записей в блоге: 3
20.07.2014, 13:52
Лучший ответ Сообщение было отмечено Samrisbe как решение

Решение

Судя по картинке, файл имеет жесткую структуру, т.е. каждое поле начиается с конкретной позиции...
Если так, то могу предложить следующий алгоритм:
1. Создаем структуру с количеством полей, равному количеству полей в файле.
C++
1
struct TAbonents {float Summ; String FIO; String Address; int N_Plat; TDate Date_Plat; String PPO;} Ab;
2. Грузим наш текстовик в StringList
C++
1
2
TStringList *sl = new TStringList;
sl->LoadFromFile("file.txt");
...
(главное, потом не забыть где нибудь сделать
C++
1
delete sl;
)
3. В цикле парсим текстовик, заполняя элементы структуры
C++
1
2
3
4
5
6
7
for(int i = 0; i < sl->Count; ++i)
{
   String s = sl->Strings[i];
   Ab.Summ = StrToFloat(s.SubString(1, N).Trim());
   s.Delete(1,N);
   //... и т.д. до конца строки. 
}
4. Используем элемент структуры Ab.Date_Plat как переменную тапа TDate
1
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
20.07.2014, 14:02  [ТС]
Этот этап я уже уже решил, и дату выдернул в переменную, теперь другая проблема гораздо проще но ни как не могу ее решить, бьюсь с утра
Дату я записываю в int Pdd, затем в цикле передаю в ADOQuery5->SQL->Text таким образом:
C++
1
ADOQuery5->SQL->Text="INSERT INTO История(КодАбон,Сумма,Дата,Операция,Время) values("+fam+","+sum+",Date(StrToDate(Pdd)),'Внесение',Time())";
на что он мне выдает во такую ошибку:
Миниатюры
Выдернуть дату с тхт файла  
0
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
20.07.2014, 14:07  [ТС]
скан подправил
Миниатюры
Выдернуть дату с тхт файла  
0
61 / 50 / 12
Регистрация: 25.01.2010
Сообщений: 257
20.07.2014, 14:30
переменная должна быть AnsiString
1
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
20.07.2014, 14:33  [ТС]
Цитата Сообщение от samsebe Посмотреть сообщение
переменная должна быть AnsiString
я затупил когда писал сюда, она и есть AnsiString
C++
1
AnsiString  Pdd="";
sorry
0
61 / 50 / 12
Регистрация: 25.01.2010
Сообщений: 257
20.07.2014, 14:39
Pdd="" не может преобразоваться в дату, надо что бы она была равна 20.07.2014 например
1
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
20.07.2014, 14:47  [ТС]
Цитата Сообщение от samsebe Посмотреть сообщение
надо что бы она была равна 20.07.2014 например
она такая и есть 01.07.2014
0
Модератор
 Аватар для D1973
9910 / 6447 / 2455
Регистрация: 21.01.2014
Сообщений: 27,370
Записей в блоге: 3
20.07.2014, 14:51
Лучший ответ Сообщение было отмечено Samrisbe как решение

Решение

И что, просто StrToDate(Pdd) не помогает? Поле [Дата] в БД, я так понимаю, как раз типа DateTime? Можно, кстати, попробовать передать это значение в апострофах, типа так:
C++
1
... "'"+StrToDate(Pdd) + "'" + ...
1
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
20.07.2014, 15:01  [ТС]
Цитата Сообщение от D1973 Посмотреть сообщение
передать это значение в апострофах, типа так
Так заработало!
C++
1
ADOQuery5->SQL->Text="INSERT INTO История(КодАбон,Сумма,Дата,Операция,Время) values("+fam+","+sum+",'"+StrToDate(Pdd) +"','Внесение',Time())";
Спасибо большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.07.2014, 15:01
Помогаю со студенческими работами здесь

Выдернуть из файла часть данных и сложить в другой файл
Есть строки в log-файле подобного вида: ... 192.168.1.2,Name,10.140.1.32:port,Wed Jun 29 16:03:30 2011 ...

Как ресурсы из dat файла посмотреть или выдернуть?
чем можно ресурсы из dat файла посмотреть или выдернуть ? Добавлено через 6 минут 8 секунд в продолжении темы...

Чтение из тхт файла
Вообщем ситуация такая. Есть комбобокс и несколько текстбоксов, так же есть тхт файл, в котором записана примерно следующая инфа допустим...

В по открытию тхт файла
У меня такая проблема: в любой программе, которую я создаю в проекте, при запуске VB указывает на ошибку в строке открывающей файл. Вот...

Чтение файла ТХТ С++
Здравствуйте у меня есть проблема с чтением файла файл input.txt нужно считывать так по группам если в первой строке есть у меня 2...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru