Перейти к содержанию
  • Регистрация
  • 0
Авторизация  
S0lexV

Load/Save StringGrid

Вопрос

Друзья, подскажите пожалуйста как реализовать на с++ в 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
 sl->Strings[i] 
или 
sl[i]

http://docwiki.embarcadero.com/RADStudio/Berlin/en/Accessing_a_Particular_String

Изменено пользователем Alex7wrt

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 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 пользователей онлайн

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

×
×
  • Создать...