Задача
Разобрать текст с разделителем-запятой в таблицу StringGrid.
Компоненты на форме
Memo (MemoCsv), StringGrid (Grid), Button (ButtonParse).
Как работает
- Ввести или вставить строки CSV.
- Разбить каждую строку по запятым.
- Разложить поля по ячейкам сетки.
Исходный код модуля
//---------------------------------------------------------------------------
// Проект 23. Разбор CSV в таблицу
// Строки с разделителем → StringGrid.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
}
//---------------------------------------------------------------------------
// Простой разбор CSV: делим строку по запятой. Возвращаем число полей,
// заполняя переданный массив. Ядро легко проверить тестом.
int splitCsv(const AnsiString &line, AnsiString out[], int maxN)
{
int n=0, start=1;
for (int i=1; i<=line.Length() && n<maxN; i++){
if (line[i]==','){ out[n++]=line.SubString(start,i-start); start=i+1; }
}
if (n<maxN) out[n++]=line.SubString(start, line.Length()-start+1);
return n;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ButtonParseClick(TObject *Sender)
{
Grid->RowCount = MemoCsv->Lines->Count + 1;
int maxCols=1;
for (int r=0; r<MemoCsv->Lines->Count; r++){
AnsiString cells[32];
int c = splitCsv(MemoCsv->Lines->Strings[r], cells, 32);
if (c>maxCols) maxCols=c;
for (int j=0;j<c;j++) Grid->Cells[j][r]=cells[j];
}
Grid->ColCount = maxCols;
}
//---------------------------------------------------------------------------
Пояснения
- Ядро splitCsv возвращает число полей, заполняя массив.
- Ширина сетки подгоняется под самую длинную строку.
📦 help-user.ru — срочный ремонт компьютеров и восстановление данных в Москве: help-user.ru.
Что дальше
Создайте в C++Builder новый проект, разместите перечисленные компоненты и вставьте код модуля. Остальные 49 программ — в разделе проектов на C++Builder; смотрите также обзор среды и контроллеры AVR.