2015-04-15 2 views
1

В этом коде keepSelectedFiles есть 5 текстовых файлов. Я хочу выбрать 3 из них и добавить в другой массив keepFiles. count - всего лишь вход от пользователя. Если пользователь выбирает 3 в текстовом поле, тогда подсчет составляет 3 числа и т. Д.Выберите 3 элемента из 5 в CStringArray?

for (int i = 0; i < keepSelectedFiles.GetSize(); i++) 
     { 
      for (int i = 0; i < count; i++) 
      { 
       keepFiles.RemoveAt(keepFiles.IsEmpty()); 
       keepFiles.Add(keepSelectedFiles[i]); 
       testbox6.AddString(keepFiles[i]); 
      } 
     } 

Пожалуйста, помогите мне, как я это делаю?

ответ

1

Вот способ сделать это (оптимизированный):

if (count < 0) 
    return; // error handling 

if (count < keepSelectedFiles.GetSize()) 
{ 
    keepFiles.SetSize(count); 
    for (int i=0; i<count; i++) 
    { 
     keepFiles[i] = keepSelectedFiles[i]; 
    } 
} 
else 
{ 
    keepFiles.Copy(keepSelectedFiles); 
} 
+0

Сэр Отлично, чем вы очень много. –

+0

Добро пожаловать –

+0

Пожалуйста, отметьте это как ответ. благодаря –

0

Давайте делать это «на бумаге»:

Позволяет сказать вы хотите, чтобы получить первые три строки из keepSelectedFiles и добавить их в keepFiles, то вы бы

  1. Получить первую строку в keepSelectedFiles и добавить в keepFiles
  2. Получить вторую строку в keepSelectedFiles и добавить в keepFiles
  3. Получить третью строку в keepSelectedFiles и добавить к keepFiles

Вот и все.

Чтобы перевести его в код, вы делаете один цикл, который будет перебирать три (count) раз, от 0 до 2 (включительно) и использовать этот номер в качестве индекса в keepSelectedFiles. Таким образом, полученный код будет выглядеть так:

for (int i = 0; i < count && i < keepSelectedFiles.GetSize(); ++i(
{ 
    keepFiles.Add(keepSelectedFiles[i]); 
} 

Всё.