Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Массив строк. как ввести в него данные?   Найти похожие ветки 

 
Pcrepair ©   (2012-07-17 10:46) [0]

Добрый день. Есть код:

(* Функция удаления указанного слова из строки
(вместе со строкой) - предлоги и запрещенные к поиску слова*)
function TForm1.DelUselessWords(const S:string):string;
var T1,T2:TStringList;  i,f:integer;   W,UseLess:string;
UseLessWords:array of string; (*объявляем динамический массив строк*)
begin
 //UseLessWords - вот тут надо ввести строки в массив
 //UseLessWords[0]:= "без"; (*Exception class $C0000005 with message
 //"access violation at 0x00406f66: write of address 0x00000000"*)
 //UseLessWords:=["без","перед"]; (*E2010 Incompatible types: "Integer" and "string"*)
 T1:=TStringList.Create;
 T2:=TStringList.Create;
 T1.Text:=S; (*ввод строк из МЕМО1*)
 for f := 0 to Length(UseLessWords)-1 do (*Цикл подстановки слова для проверки
 из массива строк*)
  begin
  UseLess:=UseLessWords[f]; (*вводим из массива очередную строку*)
  ShowMessage(UseLess);
 (*============================================*)
 (*цикл проверки строки на наличие ненужного, если ненужного нет, тогда
 добавить строку в выход*)
     for i := 0 to T1.Count-1 do
     begin
       W:=T1.Strings[i]; (*ввод строк для проверки в цикле*)
       if (AnsiPos(UseLess,W)=0)(*затычка для заданного слова*)
       then
       T2.Add(W);  (*накопление валидных строк*)
     end;
 (*============================================*)
  end;
 DelUselessWords:=T2.Text;  (*вывод результата в МЕМО2*)
 T1.Free;
 T2.Free;
end;
(*=======================================================*)
end.


Вопрос: как правильно ввести в массив строки?


 
AV ©   (2012-07-17 10:49) [1]


>  //UseLessWords - вот тут надо ввести строки в массив
>  //UseLessWords[0]:= "без"; (*Exception class $C0000005
> with message
>  //"access violation at 0x00406f66: write of address 0x00000000"*)
>  //UseLessWords:=["без","перед"]; (*E2010 Incompatible types:
>  "Integer" and "string"*)
>

SetLength(UseLessWords , скока_вешать_в граммах_строк)
а потом уже
UseLessWords[конкретный грамм]


 
Pcrepair ©   (2012-07-17 11:05) [2]

AV, спасибо

SetLength(UseLessWords ,9);
 UseLessWords[0]:= "без";

НО, теперь каждое слово можно только отдельно вводить в массив? там нет никакой общей записи?


 
Медвежонок Пятачок ©   (2012-07-17 11:20) [3]

есть общая.
но только если все элементы известны уже в момент компиляции.


 
Pcrepair ©   (2012-07-17 11:28) [4]

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


 
Медвежонок Пятачок ©   (2012-07-17 11:30) [5]

Как оно выглядит - нарисовано в хелпе.
В момент запуска это не поможет, так как по-русски написано, что все элементы должны быть известны на момент компиляции. Или иными словами - все элементы должны быть в исходнике зашиты.


 
AV ©   (2012-07-17 11:35) [6]

а-ля так можно сделать

 public      { Public declarations }
   StrA: array of string;
   procedure AddToStrA(A: array of string);
 end;

var
 Form1: TForm1;

implementation
{$R *.dfm}

procedure TForm1.AddToStrA(A: array of string);
var
 i, L: Integer;
 s: string;
begin
 L := Length(StrA);
 SetLength(StrA, L + Length(A));
 for i := 0 to Length(A) - 1 do
   StrA[L+i] := A[i];
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 i: integer;
begin
 AddToStrA(["qwer","asd"]);
 for i := 0 to Length(StrA) - 1 do
   ShowMessage( StrA[i] );

 AddToStrA(["qwer2","asd2"]);
 for i := 0 to Length(StrA) - 1 do
   ShowMessage( StrA[i] );
end;


 
icWasya ©   (2012-07-17 12:41) [7]

Ну а если  далее предполагается загрузить строки из файла ,
то почему бы не использовать TStringList и здесь?



Страницы: 1 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.082 c
2-1346908916
Eeuwige Rouw
2012-09-06 09:21
2013.03.22
Сохранение изображений


15-1343378205
Phoenix_
2012-07-27 12:36
2013.03.22
Delphi -> Java/Android


15-1334149857
AV
2012-04-11 17:10
2013.03.22
Как отменить умный поиск AdobeReader(v8.1.2)


15-1352912735
Artem
2012-11-14 21:05
2013.03.22
C mail.ru на yandex.ru можно пересылать программы?


15-1340800374
картман
2012-06-27 16:32
2013.03.22
кто в гугл хочет?