Автор Тема: Удаление пустых строк из массива  (Прочитано 8816 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
AutoIt: 3.3.6.1+
Версия: 1.1

Категория: массивы

Описание: Функция на основе идеи Yashied`a

Код: AutoIt [Выделить]
; #FUNCTION# =================================================================================================
; Name...........: _ArrayClearEmpty
; Description ...: Удаляет из массива: 1-размерного пустые строки;
;                                      2-размерного пустые строки по индексу колонки.
; Syntax.........: _ArrayClearEmpty(ByRef $a_Array, $i_SubItem = 0, $i_Start = 0)
; Parameters ....: $a_Array - массив, в котором удаляются пустые строки.
;                  |$i_SubItem  - индекс колонки (у 2-размерного массива)по которой идет поиск пустых строк,
;                  по умолчанию - первая колонка.
;                  |$i_Start - индекс строки начала поиска пустых строк, по умолчанию - 0(первая строка).
; Return values .: Успех - 1 и @error = 0 и
;                  @extended - количество удаленных пустых строк.
;                  Неудача - 0 и @error = :
;                  | 1 - $a_Array не является массивом или его размерность больше 2
;                  | 2 - в 1-размерном массиве все строки пустые (см. Remarks);
;                        в 2-размерном массиве все строки пустые по индексу колонки $i_SubItem (см. Remarks).
; Author ........: madmasles (функция), идея: Yashied http://autoit-script.ru/index.php?topic=1905.msg13688#msg13688
; Remarks .......: если $i_Start > 0 и все строки, начиная с $i_Start пустые, то вернет массив со строками
;                  с 0 по $i_Start - 1 и @error = 0.
;                  Числовое значение строки 0 не считается пустым значением.
; ============================================================================================================


Код/Пример:
(нажмите для показа/скрытия)

История версий: второй релиз

Источник: Удаление пустых строк из массива

Автор(ы): madmasles (функция), идея Yashied.
« Последнее редактирование: Июль 20, 2015, 16:37:15 от Garrett »

Русское сообщество AutoIt

Удаление пустых строк из массива
« Отправлен: Март 14, 2011, 01:17:22 »

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790

  • Автор темы
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: Удаление пустых строк из массива
« Ответ #1, Отправлен: Март 14, 2011, 09:45:58 »
Сравнение скорости обработки:
(нажмите для показа/скрытия)
« Последнее редактирование: Март 14, 2011, 10:01:22 от madmasles »

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790

  • Автор темы
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: Удаление пустых строк из массива
« Ответ #2, Отправлен: Июль 20, 2015, 16:33:02 »
Поправил код функции. Версия 1.1.

Онлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 407
  • Репутация: 94
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Удаление пустых строк из массива
« Ответ #3, Отправлен: Июль 22, 2017, 14:39:37 »
Поправил код функции. Версия 1.1.

Кроме пустых строк удаляет массивы в массиве  :'(

Русское сообщество AutoIt

Re: Удаление пустых строк из массива
« Ответ #3 Отправлен: Июль 22, 2017, 14:39:37 »

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2815
  • Репутация: 474
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Удаление пустых строк из массива
« Ответ #4, Отправлен: Июль 22, 2017, 14:46:41 »
Tempo
а именно про строки и речь
нужно править код, добавить проверку типа значения в индексе массива
примерно так
Код: AutoIt [Выделить]
Switch VarGetType($a_Array[$i])
    Case 'Array'
        $i_Index += 1
        $a_TempArray[$i_Index] = $a_Array[$i]
    Case 'String'
        If String($a_Array[$i]) Then
            $i_Index += 1
            $a_TempArray[$i_Index] = $a_Array[$i]
        EndIf
EndSwitch

« Последнее редактирование: Июль 22, 2017, 14:54:31 от joiner »
Были времена, когда солнце было ярче, трава зеленее, а водка сорокоградуснее

Русское сообщество AutoIt

Re: Удаление пустых строк из массива
« Ответ #4 Отправлен: Июль 22, 2017, 14:46:41 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
6 Ответов
8015 Просмотров
Последний ответ Январь 27, 2013, 15:31:10
от joiner
5 Ответов
5926 Просмотров
Последний ответ Июль 02, 2011, 22:14:54
от CreatoR
5 Ответов
3104 Просмотров
Последний ответ Январь 27, 2013, 15:52:54
от CreatoR
8 Ответов
3971 Просмотров
Последний ответ Январь 28, 2013, 22:28:24
от AZJIO
5 Ответов
5510 Просмотров
Последний ответ Февраль 07, 2013, 08:51:06
от exHalfer
4 Ответов
4818 Просмотров
Последний ответ Июнь 11, 2013, 23:04:48
от madmasles
3 Ответов
5426 Просмотров
Последний ответ Июнь 21, 2013, 14:41:03
от AZJIO
9 Ответов
4280 Просмотров
Последний ответ Апрель 27, 2014, 00:39:13
от KarSar
21 Ответов
3455 Просмотров
Последний ответ Май 05, 2015, 10:15:40
от forc1k
4 Ответов
886 Просмотров
Последний ответ Ноябрь 30, 2015, 13:12:43
от ВиталийВВ