Перейти к содержанию
Fire Monkey от А до Я
  • 0

Load/Save StringGrid


S0lexV

Вопрос

Друзья, подскажите пожалуйста как реализовать на с++ в FMX загрузку и сохранение текста. В VCL раньше делал так:

TStringList *sl = new TStringList;
sl->LoadFromFile(path+"car.car");
for(int i = 0 ; i<sg->RowCount ; i++)
{
sg->Rows[i]->DelimitedText=sl->Items->Strings[i];
}

Но в FMX нет метода "Rows"..... В инете есть примеры на делфи, но на C++ нет, переделать не получается. Очень нужно! Пожалуйста!

Изменено пользователем S0lexV
Ссылка на комментарий

Рекомендуемые сообщения

  • 0
2 часа назад, S0lexV сказал:

Друзья, подскажите пожалуйста как реализовать на с++ в FMX загрузку и сохранение текста. В VCL раньше делал так:


TStringList *sl = new TStringList;
sl->LoadFromFile(path+"car.car");
for(int i = 0 ; i<sg->RowCount ; i++)
{
sg->Rows[i]->DelimitedText=sl->Items->Strings[i];
}

Но в FMX нет метода "Rows"..... В инете есть примеры на делфи, но на C++ нет, переделать не получается. Очень нужно! Пожалуйста!

16 минут назад, S0lexV сказал:

да не нужен мне stringlist, мне нужно в STRINGGRID запихать текст из файла!:wacko:

Я прошу прощения. Почему-то это было не очевидно))

Ссылка на комментарий
  • 0

Как вариант - загрузить файл в stringlist по делимитеру, а затем скопировать строки в stringgrid

for(int i = 0 ; i<sl->Count ; i++) {sg->cells[0,i] = sl[i];}

и потом удалить stringlist


 

Изменено пользователем Alex7wrt
Ссылка на комментарий
  • 0

Грубо но работает, кто знает код лучше напишите сюда

Загрузка из файла в SG

TStringList *ts1=new TStringList;
TStringList *ts2=new TStringList;
TStringList *ts3=new TStringList;
ts1->LoadFromFile(path+"car.car"); // Подгружаем файлик
ts2->StrictDelimiter = true;
ts2->Delimiter = '#';
ts2->DelimitedText = ts1->Text; // По разделителю разбиваем текст и сливаем его в ts2
ts3->Text = ts2->Text;
Memo1->Lines->Text = ts3->Text; // В мемо для наглядности

int ic=0,ir = 0;//  Счетчики строк и столбцов
for ( int j = 0; j < ts3->Count; j++)
   {
 if(ts3->Strings[j].operator ==('*'))
	 {
	 ic=0;
	 ir++;
	 sg->Cells[ic][ir] = ts3->Strings[j+1];


	 }
  else
	 {
	 sg->Cells[ic][ir] = ts3->Strings[j];
	  ic++;
	 }
   }

Содержимое файла должно быть вида:

String 1#1#2#3#4

*#String 2#1#2#3#4

*#String 3#1#2#3#4

# - разделитель, * - идентфикатор новой строки

Результат работы программы(как отобразится в SG):

String 1 1 2 3 4

String 2 1 2 3 4

String 3 1 2 3 4

Изменено пользователем S0lexV
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...