Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2012, 13:24   #1
1234567852
Пользователь
 
Аватар для 1234567852
 
Регистрация: 06.08.2010
Сообщений: 12
По умолчанию Перевод переменных ansy to array

Есть переменная ANSYSTRING. В ней текст из скачанного из инета файла. (Т.е. файл на сервере и мы спросто скачали его в память как раз в эту ANSYSTRING) тепрерь её нужно обработать, т.е. разбить на составляющие по разделам.
воть например содержимое файла
PHP код:
[Раздел 1]
Первая строчка инфы
Вторая строчка инфы
.....
Тысячная строчка инфы :)
[
Раздел 2]
Первая строчка инфы
Вторая строчка инфы
.....
Тысячная строчка инфы :)
[
Раздел 3]
...
[
раздел 4]
...
[
Раздел 5
Мне легче распихивать каждый раздел в массив array of string а потом уже в цикле обрабатывать каждую строчку инфы. но ведь согласитесь, что будет в ANSYSTRING??? Всё будет в одной длинющей строчке.! и символы разделяющие строчки #$A. проще мне кажется разделить по разделам так же в цикле работая с array of string. например

PHP код:
while not array[I] = [Раздел 2] do 
begin
I
:=I+1;
array2[a]:=array[I];
a:=a+1
end

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

вот впринципе и подошли к вопросу. чтобы замутить такой алгоритм мне нужно из ANSYSTRING перевести в array of string, так чтоб каждая новая строчка в ANSYSTRING была новой строчкой в Array of String. Ради такого мне пришлось прибегнуть к такому извращению! Ниже приведённый код работает на ура!

PHP код:
Function AnsiToArrStr(DataAnsiString):boolean;
var
  
LenInteger;
  
IterInteger;
  
PositionInteger;
  
StringsInteger;
  
Sff: array [0..1024of string;
begin
  Strings
:=0;
  
Len := Length(Data);
  for 
Iter := 0 to Len do
  
begin
    Position 
:= Pos(#$A, Data);
    
if Position 0 then break;
    
Sff[Strings] := Copy(Data0Position-1);
    
Data := Copy(DataPosition+1Len);
    
Strings:=Strings+1;
  
end;

end
Где, Sff наш мега массив, в который мы переводим, DATA - наша ANSYSTRING. (Цикл в цикле и ещё раз в цикле шутка).
Вопрос есть ли что нить по серьёзнее, по проще, по быстрее.?
Наштампуем троянец???
1234567852 вне форума Ответить с цитированием
Старый 09.05.2012, 14:12   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Ну, мне кажется, главное тут "побыстрее". А для этого нужно избавиться от всех строковых операций и операций блочного копирования.
В основном цикле (кстети, он до len-1, а не до len) анализируем очередной символ: если встречаем конец строки - завершаем текущую строку и переходим к следующей. Иначе - переносим секущий символ в конец очередной строки.
s-andriano вне форума Ответить с цитированием
Старый 09.05.2012, 16:23   #3
1234567852
Пользователь
 
Аватар для 1234567852
 
Регистрация: 06.08.2010
Сообщений: 12
По умолчанию

Воть перемутил по вашему алгаритму...
PHP код:
Procedure AnsiToArrStr(AnStrAnsiString;ArrayStr:Array of string;NumStr:Integer);
var

    
LenInteger;
    
IterInteger;

Begin

    NumStr
:=0  ;
    
Len := Length(AnStr) - 1;

     for 
Iter := 0 to Len do
     
begin
        
if AnStr[Iter] = #$A then NumStr:=NumStr+1
        
else
        
ArrayStr[NumStr]:= ArrayStr[NumStr]+AnStr[Iter]
     
end;
end

Тоже робит на ура!
Есть ещё какие нить идеи?
Наштампуем троянец???
1234567852 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Записать Array of AnsiChar в Array of AnsiChar Anton911 Общие вопросы Delphi 4 07.05.2012 21:58
str->array & array->str LeoN PHP 6 06.07.2010 22:38
Перевод переменных в различные типы! DarkMaks93 Общие вопросы Delphi 4 25.07.2009 22:01
Array или не array Димарик Общие вопросы Delphi 4 18.06.2007 15:16
Перевод переменных разных типов LeoN Общие вопросы Delphi 3 23.03.2007 00:15