Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++ Builder

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.74
singleplayer
0 / 0 / 0
Регистрация: 06.07.2009
Сообщений: 42
#1

Чтение данных из файла и добавление их на форму - C++ Builder

07.09.2009, 09:48. Просмотров 4063. Ответов 22
Метки нет (Все метки)

Здравствуйте. Нужно открыть текстовый файл, найти слово "Дата", и цыфры, следующие за словом добавить в поле Едит. Пока могу только открыть файл, дальше никак не получается.
C++
1
2
3
4
5
6
void __fastcall TForm1::Button4Click(TObject *Sender)
{        
        AnsiString MyFName;
        OpenDialog1->Execute();
        (OpenDialog1->FileName)= MyFName;
}
Файл открываю через опен диалог.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.09.2009, 09:48
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Чтение данных из файла и добавление их на форму (C++ Builder):

[C++ Builder XE7] Добавление анимации на форму из готового .avi файла - C++ Builder
Здравствуйте! Имеется тема курсовой на игровую тематику. Среда разработки C++ Builder XE7 В игре есть персонаж, состояние персонажа будет...

Чтение файла данных по ключам - C++ Builder
Добрый день! Коллеги, подскажите пожалуйста, как организовать чтение нужных данных из файла в массив, используя ключ? Пишу программу и...

Чтение данных из файла C++ Builder - C++ Builder
Добрый день! Возникла проблема с чтением данных из файла. Смотрю в файл - данные есть, но считывать их программа отказывается... FILE*...

Чтение данных из Excel файла - C++ Builder
Добрый день. Имеется Excel файл некого формата. Первый столбец в нем - числа. Вопрос: Как мне минимальными усилиями считать столбец...

Чтение данных из текстового файла - C++ Builder
Как считать данные (текст) из текстового файла в переменную String до символа {, затем до символа }? Если я не знаю сколько мне надо...

Чтение данных из файла и их передача через порт компьютера - C++ Builder
Добрый день. Есть задача: в текстовый файл в реальном времени пишется поток данных (углы наклона прибора в градусах). Необходимо...

22
RNT
Автор FAQ
3137 / 357 / 3
Регистрация: 08.08.2009
Сообщений: 1,126
07.09.2009, 10:56 #2
(OpenDialog1->FileName)= MyFName;
Зачем нужна эта строка ?
Насколько я знаю , TOpenDialog нужет для того , чтобы передать в прогу путь к файлу.
Наверно так будет правильнее:
C++
1
2
3
        AnsiString MyFName;
        OpenDialog1->Execute();
        MyFName=OpenDialog1->FileName;
После выполнения этого кода в MyFName окажется путь к файлу.
1
Monte-Cristo
2794 / 1380 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
07.09.2009, 11:09 #3
singleplayer, для чтения лучше используй класс TIniFile. Он позволит выдернуть информацию по ключу (в твоем случае ключ - Дата например).
1
singleplayer
0 / 0 / 0
Регистрация: 06.07.2009
Сообщений: 42
07.09.2009, 11:29  [ТС] #4
Monte-Cristo, а можно разумный пример использования класса, именно для моего случая?

Добавлено через 11 минут
что-то не получается..объясни для начала, как подключить этот класс, а то я делаю:
C++
1
2
3
4
5
6
7
8
9
10
#include IniFiles.hpp
 
void __fastcall TForm1::Button4Click(TObject *Sender)
{
        AnsiString MyFName;
        OpenDialog1->Execute();
        MyFName=OpenDialog1->FileName;
        TIniFile *Ini = new TIniFile(MyFName);
 
}
ошибка-
[C++ Error] Unit1.cpp(8): E2046 Bad file name format in include directive
[C++ Error] Unit1.cpp(43): E2451 Undefined symbol 'TIniFile'
[C++ Error] Unit1.cpp(43): E2451 Undefined symbol 'Ini'
[C++ Error] Unit1.cpp(43): E2303 Type name expected
[C++ Error] Unit1.cpp(43): E2379 Statement missing ;
0
Despot
5 / 5 / 1
Регистрация: 03.05.2009
Сообщений: 24
07.09.2009, 11:33 #5
Известно количество цифр, которые нужно взять из файла?
Цифры находят на одной строке или могут переходить на другую?
Совокупность цифр, которые будем брать, - это число? Если число, то может ли оно быть дробным?
Чем цифры отделяются от информации, которая находится за ними и которую уже не нужно брать?
Можешь привести фрагмент из файла, из которого нужно будет брать инфу?
0
Monte-Cristo
2794 / 1380 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
07.09.2009, 11:36 #6
singleplayer, используй поиск по форуму: ключевое слово IniFile.
Как сохранить настройки программы в файл
0
singleplayer
0 / 0 / 0
Регистрация: 06.07.2009
Сообщений: 42
07.09.2009, 12:30  [ТС] #7
блин...я подключил с ошибкой..кавычки не поставил,все вопрос про подключение пропал.

Monte-Cristo, я тут смотрел


Despot, известно, 5 цифр, на одной строке, без пробелов, без переносов. Число целое от 00000 до 99999.

Хотелось бы также увидеть вариант решения задачи, если известно нахождение этих цифр, например число находится на 5 строке, с 4 по 9 подстроки.
0
Despot
5 / 5 / 1
Регистрация: 03.05.2009
Сообщений: 24
07.09.2009, 12:48 #8
Сколько строк во входном файле?
Слово "Дата" в единственном экземпляре в этом файле?
0
singleplayer
0 / 0 / 0
Регистрация: 06.07.2009
Сообщений: 42
07.09.2009, 12:52  [ТС] #9
Despot, строк неизвестно, файл каждый раз разный. Слово "Дата" в единственном числе. Но мне бы хотелось найти решение, и еслиб в не единственном тоже). Для начала,конечно давай в единственном.
0
Despot
5 / 5 / 1
Регистрация: 03.05.2009
Сообщений: 24
07.09.2009, 14:00 #10
Вариант для одного ключевого слова во входном файле.

Файл "*.cpp"
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
   : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BtnGetDataClick(TObject *Sender)
{
   TStringList *TmpList = new TStringList(); // ñïèñîê äëÿ õðГ*Г*ГҐГ*ГЁГї âõîäГ*îé ГЁГ*ôîðìГ*öèè
 
   if ( OpenDialog1->Execute() )
   {
      // Г§Г*ãðóæГ*ГҐГ¬ ГґГ*éë Гў ñïèñîê
      TmpList->LoadFromFile( OpenDialog1->FileName );
 
      int pos = 0;   // ïîçèöèÿ êëþ÷åâîãî ñëîâГ* Гў ñòðîêå
 
      //öèêë ïîèñêГ* êëþ÷åâîãî ñëîâГ*
      for ( int i = 0; i < TmpList->Count; i++ )
      {
         // åñëè ñëîâî Гў ñòðîêå Г*Г*éäåГ*Г®
         if ( pos = TmpList->Strings[i].AnsiPos( EdKeyWord->Text ) )
         {
            EdOutData->Text = TmpList->Strings[i].SubString( pos + EdKeyWord->Text.Length(), EdNumb->Text.ToInt() );
            break;
         }
      }
   }
 
   delete TmpList;
}
//---------------------------------------------------------------------------
Файл "*.h"
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
//---------------------------------------------------------------------------
 
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Dialogs.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
   TEdit *EdOutData;
   TButton *BtnGetData;
   TOpenDialog *OpenDialog1;
   TLabel *Label1;
   TLabel *Label2;
   TEdit *EdKeyWord;
   TEdit *EdNumb;
   TLabel *Label3;
   void __fastcall BtnGetDataClick(TObject *Sender);
private:    // User declarations
public:     // User declarations
   __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
1
singleplayer
0 / 0 / 0
Регистрация: 06.07.2009
Сообщений: 42
07.09.2009, 14:14  [ТС] #11
Despot, что-то не могу найти- а где ключевое слово задается?
0
Despot
5 / 5 / 1
Регистрация: 03.05.2009
Сообщений: 24
08.09.2009, 08:47 #12
Цитата Сообщение от singleplayer Посмотреть сообщение
Despot, что-то не могу найти- а где ключевое слово задается?
На форме есть компонент TEdit (TEdit *EdKeyWord). Вот в нем и задаешь ключевое слово.
Если пробовал компилить, сам должен был увидеть.
0
kiruhka
1 / 1 / 0
Регистрация: 08.09.2009
Сообщений: 103
08.09.2009, 09:11 #13
Помогите плизз!!
Я в СИ++ билдер вообще новичёк, да и в програмировании в приципе тоже. Мне для работы нужно.
У меня на форме несколько эдитов и в них вводятся данные, далее есть кнопочка расчет, которая берёт данные из этих Эдитов, считает и выводит в другие эдиты. Так вот мне надо сделать так, чтобы числа вводить не от руги, а чтобы они загружались из текстового файла и загружались в эдиты. Помогите!!
0
Despot
5 / 5 / 1
Регистрация: 03.05.2009
Сообщений: 24
08.09.2009, 09:56 #14
2 kiruhka
В каком виде они должны быть в файле?
Какого типа данные должны браться из файла?
Формат файла покажи, пж.
0
kiruhka
1 / 1 / 0
Регистрация: 08.09.2009
Сообщений: 103
09.09.2009, 04:39 #15
Цитата Сообщение от Despot Посмотреть сообщение
2 kiruhka
В каком виде они должны быть в файле?
Какого типа данные должны браться из файла?
Формат файла покажи, пж.
Файл обычный TXT
Данные там числа, и целые и дробные
Выглядит примерно так:
60,0
150,7
52,5
104
Т.е. каждая цифра записана в новой строке
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2009, 04:39
Привет! Вот еще темы с ответами:

Чтение бинарного файла и построение графика на основе его данных - C++ Builder
Начал изучать c++ builder недавно и столкнулся с проблемой. Надо построить график, и при этом чтобы по одной кнопке происходила запись, а...

Добавление данных на форму с текстового файла - Visual Basic .NET
Всем доброго времени суток, подскажите вот что, я хотел бы сделать вот так : есть текстовый файл с названиями и характеристиками авто. ...

Добавление данных на форму с текстового файла - C++ Qt
Здравствуйте, возникла необходимость сделать тоже самое что и в этой теме http://www.cyberforum.ru/vb-net/thread948561.html только на QT ...

Добавление данных через форму в таблицу базы данных MS SQL - C#
Здравствуйте! Я делаю форму для добавления записи в таблицу базы данных, созданную в MS SQL 2008. В таблице три поля...


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

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

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