Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
11 / 11 / 1
Регистрация: 14.04.2010
Сообщений: 73
1

Про TStringList и ещё по мелочи ламерское

11.07.2012, 17:51. Показов 1398. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
void __fastcall TForm1::CSV1Click(TObject *Sender)
{
    if(OpenDialog1->Execute())                  //Импортирую CSV
{
    TStringList* sl1;
        int i, j;
    TStringList* sl= new TStringList();
    sl->LoadFromFile(OpenDialog1->FileName);
    for (i=0;i<sl->Count;i++)                   //Находим кол-во строк в СSV
{
  sl1=new TStringList();
  sl1->Delimiter=';';
  sl1->DelimitedText=sl->Strings[i];
  StringGrid1->Rows[i]->Assign(sl1);            //Задаём кол-во строк в CSV
   //.................//Arr[i] = StringGrid1->cells[1][i]; - нужно что-то типа такого?
  sl1->Free();
  sl1=NULL;
}
        
 
    StringGrid1->RowCount = i;
    sl->Free();
    Label1->Caption = i;
    double Emp;             //Массив для ЭФР
        for (j = 1; j < i; j++)
    {
    Emp = j/i;                              //Нахождение ЭФР
    StringGrid1->Cells[2][j] = FloatToStrF(Emp,ffFixed,5,5);
    Series1->Add(j,Emp);
    }
}
}
Первое что не понятно это как мне загрузить из CSV файла данные в массив, интересует 2й столбец?
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Имеет вот примерно такой вид
1   10.002
1;10.002
2;10.005
3;10.019
4;10.028
5;10.03
6;10.04
7;10.045
8;10.051
9;10.053
10;10.058
11;10.065
12;10.083
.............
Следующий вопрос, почему не считает ЭФР? (Emp = j/i постоянно 0 выдаёт?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.07.2012, 17:51
Ответы с готовыми решениями:

Как узнать кол-во строк в TStringList? (Delphi). И ещё один question внутри^^
Как узнать кол-во строк в TStringList? (Delphi)? И ещё, есть ли аналог TStringList'у, чтобы мог...

Ещё раз про радиомодули
Задача - нужно связать 20 устройств разбросанных по лесу на расстоянии от 20 до 300 метров друг от...

Ещё раз про удаление
Есть компонент JFusion, хотелось бы его удалить(т.к. в нём код 64), но в управление расширениями...

Ещё раз про сокеты
Вернулся к вопросу о создании сокет сервера Вот взял примерчик из сети // set some variables...

13
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
11.07.2012, 18:13 2
В чем заключается вопрос и что такое CSV?
0
11 / 11 / 1
Регистрация: 14.04.2010
Сообщений: 73
11.07.2012, 18:23  [ТС] 3
Цитата Сообщение от Avazart Посмотреть сообщение
В чем заключается вопрос и что такое CSV?
Вопрос заключается в том как мне *.CSV (расширение файла) загрузить данные с него в массив? в StringGrid нашел как загружать а как в массив это сделать не пойму. Массив должен быть динамический, т.к заранее не знаем сколько строк в CSV файле. в примере у меня всего 2 столбца, мне хотя бы загрузить 2й столбец в массив. А вторая часть вопроса проста там обычная операция деления Emp = j/i; которая почему то не выполняется? Вопрос почему всегда на выводе 0?
Миниатюры
Про TStringList и ещё по мелочи ламерское  
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
11.07.2012, 18:26 4
Я не знаком с форматом файла CSV и не разу его не видел.... и мысли читать не умею
Массив должен быть динамический, т.к заранее не знаем сколько строк в CSV файле.
О каком массиве идет речь?
Что мешает изменять размер StringGrid и StringList ?
0
11 / 11 / 1
Регистрация: 14.04.2010
Сообщений: 73
11.07.2012, 18:39  [ТС] 5
Цитата Сообщение от Avazart Посмотреть сообщение
Я не знаком с форматом файла CSV и не разу его не видел.... и мысли читать не умею

О каком массиве идет речь?
Что мешает изменять размер StringGrid и StringList ?
http://ru.wikipedia.org/wiki/CSV
В основном у меня там будут цифры.
Размер StringGrid и StringList не мешает и дело не в них. мне нужно переписать из 2го столбца скажем того же StringGrid в массив (хотя мне нужно с самого файла в массив минуя StringGrid записывать в массив) ? как это сделать, помню что использовал FloatToStrF.....
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
11.07.2012, 18:44 6
Как-то так.
C++
1
2
3
4
const int size=100;
float A[size];
//...
bool result= TryStrToFloat(StringGrid1->Cells[x][y],A[i]);
минуя StringGrid записывать в массив
Что мешает читать сразу StringList ?
0
11 / 11 / 1
Регистрация: 14.04.2010
Сообщений: 73
11.07.2012, 18:53  [ТС] 7
Цитата Сообщение от Avazart Посмотреть сообщение
Как-то так.
C++
1
2
3
4
const int size=100;
float A[size];
//...
bool result= TryStrToFloat(StringGrid1->Cells[x][y],A[i]);
Я имею виду что-то типа этого
C++
1
2
3
4
    double *DataAR = new double[i];
    for (j = 0; j < i; j++) {
      DataAR[j] = FloatToStrF(StringGrid1->Cells[1][j]);
    }
без обработок на ошибки пока конечно же
Что мешает читать сразу StringList ?
Покажите как это делается?
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
11.07.2012, 18:58 8
Покажите как это делается?
Точно также конвертируте нужную строку из StringList

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
10
#include<vector>
//--------------------------
std::vector<double> vA;
 
for (j=0; j<i; j++) 
  {
    double value; 
    bool result= TryStrToFloat(StringGrid1->Cells[x][y],value);
    if(result) vA.push_back(value); 
  }
0
11 / 11 / 1
Регистрация: 14.04.2010
Сообщений: 73
11.07.2012, 18:59  [ТС] 9
Мой последний код не работает, точно также это как?
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
11.07.2012, 19:01 10
Не
C++
1
DataAR[j] = FloatToStrF(StringGrid1->Cells[1][j]);
А
C++
1
DataAR[j] = StrToFloat(StringGrid1->Cells[1][j]);
1
11 / 11 / 1
Регистрация: 14.04.2010
Сообщений: 73
11.07.2012, 19:13  [ТС] 11
Avazart Спасибо всё получилось =) вот забыл и затупил =)
Кстате решил проблему с
C++
1
Emp = j/i;
Просто написал для деления отдельную функцию
C++
1
2
3
4
5
6
double EmpF(double i, double n)
{
    double result;
    result = i/n;
    return(result);
}
и всё запахало.
Но это не всё буду ещё куча ламерских вопросов =) но попозже, вначале это приберу.
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
11.07.2012, 19:16 12
C++
1
double Emp = j/(double)i;
1
11 / 11 / 1
Регистрация: 14.04.2010
Сообщений: 73
11.07.2012, 19:19  [ТС] 13
Цитата Сообщение от Avazart Посмотреть сообщение
C++
1
double Emp = j/(double)i;
Работает и так, почему ?
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
11.07.2012, 19:21 14
По тому i и j типа int и результат тоже int допустим: 1/2 = 0, а если float: 1/2. = 0.5
0
11.07.2012, 19:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.07.2012, 19:21
Помогаю со студенческими работами здесь

Ещё одна тема про 3 из 4 Гб
Здравствуйте! Решил сделать рабочий компьютер из того, что было. Купил две планки оперативной...

Ещё раз про асинхронность
Скажите пожалуйста, зачем в данном случае использовать асинхронность, когда и синхронное выполнение...

Ещё одна задачка про Массив
Создать Массив с элементами: 2,2,7,5,3,4,4,10,6,6 Это делается так: Мас= Новый Массив;...

Ещё раз про стоп-символы
А у меня есть титл &quot;Веники. Для избранных&quot; - ну типа того... Придется удалять точку? А ведь так...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru