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

Вниз

Как вставить содержимое перeменной string в код программы?   Найти похожие ветки 

 
pathfinder   (2005-11-08 20:11) [0]

Подскажите пожалуйста.


 
Zeqfreed ©   (2005-11-08 20:16) [1]

pathfinder   (08.11.05 20:11)
А откуда берется переменная string? И в код какой программы вставить?


 
umbra ©   (2005-11-08 20:19) [2]

2 pathfinder   (08.11.05 20:11)
клавиатура поможет в этом нелегком испытании


 
pathfinder   (2005-11-08 20:23) [3]


> Zeqfreed ©

Есть такая штука:
if (Pos(S_FAM,S2)<>0) and (Pos(S_NAM,S2)<>0) and (Pos(S_SUR,S2)<>0) and
        (Pos(S_DT,S2)<>0) and (Pos(S_DS,S2)<>0) and (Pos(S_DN,S2)<>0) and
        (Pos(S_DD,S2)<>0) and (Pos(S_DO,S2)<>0) and (Pos(S_AD,S2)<>0) and
        (Pos(S_DR,S2)<>0)
и наличие каждого условия должно определятся чекбоксом.
Вот я и подумал сделать это через переменную string и как-то использовать ее в условиях для if.


 
Virgo_Style ©   (2005-11-08 20:25) [4]

D6 и 2000 - вроде бы компиляторы, а не интерпретаторы...


 
pathfinder   (2005-11-08 20:38) [5]

Как же быть?:(


 
umbra ©   (2005-11-08 20:45) [6]

2 pathfinder   (08.11.05 20:38) [5]

задавать внятные вопросы и давать завершенные фрагменты кода


 
Джо ©   (2005-11-08 20:48) [7]


>  [4] Virgo_Style ©   (08.11.05 20:25)
> D6 и 2000 -

Одна из этих двоих, вообще-то, не компилятор, а операционная система ;P


 
pathfinder   (2005-11-08 20:55) [8]

Есть 2 текст. файла с записями вида
Фамилия^Имя^Отчество и т.д.
Программа сравнивает файлы на предмет записей с совпадающими параметрами(Фам, Имя, Отч..) и удаляет во втором файле идентичные записи. Хотелось бы задавать параметры по которым производится сравнение чекбоксами. Как это можно сделать?
Заранее всем спасибо.

begin
St1.LoadFromFile(opendialog1.FileName);
St2.LoadFromFile(opendialog2.FileName);
c:=0;
memL.Lines.Clear;
   for y:=0 to St1.Count-1 do
    begin
     S:=St1.strings[y];
     S_PR:=S;
     S_FAM:=trim(copy(s,1,pos("^",s)-1));
     delete(s,1,pos("^",s));
     S_NAM:=trim(copy(s,1,pos("^",s)-1));
     delete(s,1,pos("^",s));
     S_SUR:=trim(copy(s,1,pos("^",s)-1));
     delete(s,1,pos("^",s));
     S_DT:=trim(copy(s,1,pos("^",s)-1));
     delete(s,1,pos("^",s));
     S_DS:=trim(copy(s,1,pos("^",s)-1));
     delete(s,1,pos("^",s));
     S_DN:=trim(copy(s,1,pos("^",s)-1));
     delete(s,1,pos("^",s));
     S_DD:=trim(copy(s,1,pos("^",s)-1));
     delete(s,1,pos("^",s));
     S_DO:=trim(copy(s,1,pos("^",s)-1));
     delete(s,1,pos("^",s));
     S_AD:=trim(copy(s,1,pos("^",s)-1));
     delete(s,1,pos("^",s));
     S_DR:=trim(copy(s,1,length(s)));
      for z:=0 to St2.Count-1 do
       begin
        S2:=St2.Strings[z];
        if (Pos(S_FAM,S2)<>0) and (Pos(S_NAM,S2)<>0) and (Pos(S_SUR,S2)<>0) and
           (Pos(S_DT,S2)<>0) and (Pos(S_DS,S2)<>0) and (Pos(S_DN,S2)<>0) and
           (Pos(S_DD,S2)<>0) and (Pos(S_DO,S2)<>0) and (Pos(S_AD,S2)<>0) and
           (Pos(S_DR,S2)<>0)
         then
          begin
           memL.Lines.Add("Файл 1. Строка "+Inttostr(y+1)+": "+S_PR);
           memL.Lines.Add("Файл 2. Строка "+Inttostr(z+1)+": "+S2);
           memL.Lines.Add("");
           St2.Strings[z]:="";
           c:=c+1;
          end;
       end;
    end;
i := 0;
while i < St2.Count do
if St2.Strings[i] = "" then
  St2.Delete(i)
else
  inc(i);
if c=0 then memL.Lines.add("Повторов не обнаружено.")
      else
       begin
        memL.Lines.add("Найдено "+inttostr(c)+" повторов.");
        St2.SaveToFile(Extractfilepath(application.ExeName)+"Out\"+extractfilename(opendialog2.FileName));
       end;
end;


 
Zeqfreed ©   (2005-11-08 21:09) [9]

pathfinder   (08.11.05 20:23) [3]
type
 TForm1 = class(TForm)
   CheckBox1: TCheckBox;
   CheckBox2: TCheckBox;
   CheckBox3: TCheckBox;
   Button1: TButton;
   Edit1: TEdit;
   procedure FormCreate(Sender: TObject);
   procedure Button1Click(Sender: TObject);
 private
   procedure CheckBoxesClick(Sender: TObject);
 public
   { Public declarations }
 end;

const
ConditionsAmount = 3;

var
 Form1: TForm1;
 substrings : array[1..ConditionsAmount] of String = ("Подстрока 1", "Подстрока 2", "Подстрока 3");
 activity : array[1..ConditionsAmount] of Boolean = (false, false, false);

implementation

{$R *.dfm}

procedure TForm1.CheckBoxesClick(Sender: TObject);
begin
if (Sender is TCheckBox) and ((Sender as TCheckBox).Tag in [1..ConditionsAmount]) then
 activity[(Sender as TCheckBox).Tag] := (Sender as TCheckBox).Checked;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
CheckBox1.Checked := activity[1];
CheckBox2.Checked := activity[2];
CheckBox3.Checked := activity[3];

CheckBox1.Tag := 1;
CheckBox2.Tag := 2;
CheckBox3.Tag := 3;

CheckBox1.OnClick := CheckBoxesClick;
CheckBox2.OnClick := CheckBoxesClick;
CheckBox3.OnClick := CheckBoxesClick;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
i : Integer;
b : Boolean;
inactive : Integer;
begin
b := true;
inactive := 0;

for i := 1 to ConditionsAmount do begin
 if activity[i] then
  b := b and (Pos(substrings[i], Edit1.Text) <> 0)
 else
  Inc(inactive);
end;

if inactive < ConditionsAmount then begin
 if b then ShowMessage("Everything is OK");
end else
 ShowMessage("At least one condition should be enabled");
end;


Думай в этом ключе :)


 
pathfinder   (2005-11-08 21:17) [10]


> Zeqfreed ©   (08.11.05 21:09) [9]

Спасибо. Постараюсь..не думал, что это так сложно:(


 
umbra ©   (2005-11-08 21:21) [11]


> не думал, что это так сложно:(


основная сложность - привести в соответствие отмеченные чекбоксы и номера полей в записях, а затем извлечь из строк эти поля, чтобы передать их в функцию Pos



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

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

Наверх




Память: 0.5 MB
Время: 0.029 c
2-1131091231
uZveruga
2005-11-04 11:00
2005.11.27
Глюк в rtl60.bpl


14-1131118960
Константинов
2005-11-04 18:42
2005.11.27
Оплата труда


11-1112516913
Владимир Кладов
2005-04-03 12:28
2005.11.27
FastMM - еще один менеджер кучи


1-1130924158
ASDSee
2005-11-02 12:35
2005.11.27
увеличить в два раза BMP из загруженного в новосозданный


3-1129479821
maVladimir
2005-10-16 20:23
2005.11.27
RowSelection in TCustomDBGrid