Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Сохранение каждой строки textbox в массив


Автор: zall 14.11.2012, 11:24
Имеется текстбокс в который загружаются данные из файла

Код

  System::IO::StreamReader ^ sr = gcnew
  System::IO::StreamReader(openFileDialog1->FileName);

         auto s= sr->ReadToEnd();
         textBox2->Text = s;


Нужно сохранить (либо из файла, либо из текстбокаса, как проще) так чтоб первая строка сохранилась в mas[1][n] вторая в mas[2][n] или просто каждую строчку в отдельный mas[]. Исходная информация в файле содержит только числа разделённые пробелом целые числа.

Понимаю что вопрос идиотский и т.д, но меня огорошили и вот приходится срочно в сжатые сроки делать, без помощи никак, мозг уже отказывается думать.

Автор: zall 14.11.2012, 14:02
Нашёл только вот это 

http://forum.codenet.ru/q58065/%D0%9C%D0%B0%D1%81%D1%81%D0%B8%D0%B2+String%5B%5D%5B%5D+to+int+%5B%5D%5B%5D

но у меня как не переделывал не работает.

Автор: zall 20.11.2012, 20:19
Может кто знает можно ли сделать через fscanf?

Автор: diadiavova 20.11.2012, 21:57
А в чем затруднение-то? У текстбокса есть свойство Lines, возвращающее массив строк. Проблема распихать это дело в другой массив что ли? smile 

Автор: zall 21.11.2012, 00:58
Всё время проблема с типами, не переводятся нормально, ругается что невозможно привести от String^ 

соответственно вот так мы из текстбокса вытаскиваем массив строк, а после этого у меня получалось его переделать в char^, но вот получить int[] никоим образом не получилось, не говоря уж о int[][];
Код

    array<String^>^ tempArray = gcnew array<String^>( textBox2->Lines->Length );
    tempArray=textBox2->Lines; 

Автор: zall 21.11.2012, 17:35
Сделал вот так, успешно работает с первой строкой переделывает в массив инт, помогите разобраться как сделать так чтоб работал со всеми строками.
       
Код

   System::IO::StreamReader ^ sr = gcnew
          System::IO::StreamReader(openFileDialog1->FileName);

          auto s= sr->ReadToEnd();
         
     array<Char>^sep = gcnew array<Char>{   ' '   };
     array<String^>^result;

     int eleme[340]; //цифра поставлена временно, должна быть длинна строки s, но почему-то благополучно int dlin=s->Length; int eleme[dlin]; не работает, говорит типо константа должна быть

     result = s->Split( sep, StringSplitOptions::RemoveEmptyEntries );
     for (int k=0; k<result->Length; k++)
     {    
        
         eleme[k]= INT32::Parse(result[k]);
        
     }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)