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

Вниз

Поиск по множеству из мемо   Найти похожие ветки 

 
Oyeme   (2008-04-17 15:45) [0]

Всем прет...
В чём моя ошибка...
зАдание у меня такое.. дАн текствоой файл сколько в нем строк не содержащих гласных букв.

Делаю..простое пытаюсь найти в фали (хотябы цыфры...-для начала) а он не ищет и выдёт ещё ошибку..

зарание спасибо за помощь.

var
e,i,c,: integer;
F: Textfile;

begin
 AssignFile(F,"a.txt");
 Reset(F);
 memo1.lines.LoadFromFile("a.txt");
  E := Memo1.Lines.Count; // vsego liniij v memo
  For i:=1  to e do  begin
    for c:=1 to length(memo1.lines[i])  do
                    if StrToInt(memo1.lines[c]) in [1..4] then
                      ShowMessage("na6ol")
                                       else  ShowMessage("nety");
                end;

     CloseFile(F);


 
Плохиш ©   (2008-04-17 15:50) [1]

Нумерация строк начинается с 0
Сколькож этих чукч уже :-(


 
Oyeme   (2008-04-17 15:53) [2]

знаю...я так сдлеал для себя...он и первую строку не ищет


 
Palladin ©   (2008-04-17 15:54) [3]


>  StrToInt(memo1.lines[c])

ты вот тут чем занимаешься, объясни.


 
Сергей М. ©   (2008-04-17 15:55) [4]


> первую строку не ищет


Где в твоем коде хоть что-либо напоминающее поиск и подсчет строк, не содержащих гласных букв ?


 
Плохиш ©   (2008-04-17 15:56) [5]


> Palladin ©   (17.04.08 15:54) [3]

Я туда даже читать не стал, побоялся...


 
Oyeme   (2008-04-17 15:59) [6]

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

если пишу так то

if memo1.lines[c] in [1..4] then
                     ShowMessage("na6ol")
                                      else  ShowMessage("nety");

пишет не совместимость со сстрокой и интегер


 
Palladin ©   (2008-04-17 16:01) [7]


> if memo1.lines[c] in [1..4] then

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


 
Плохиш ©   (2008-04-17 16:02) [8]


> Oyeme   (17.04.08 15:59) [6]

Может стоит всё-таки книжку какую по основам прочитать? А то так и будешь кнопки бездумно топтать...


 
Johnmen ©   (2008-04-17 16:02) [9]

он пробует различные комбинации буковок, пока не получится...


 
Oyeme   (2008-04-17 16:07) [10]

)) из файла прочитать текст и начти в нём  гласные буквы..))

я для начало читаю сколько всего строк потом идёт цикл по строке и каждый символ проверяет ..
я не брал гласные... (просто для себя взял цифры..)) пуская хоть найдёт цифры в строке.


 
Anatoly Podgoretsky ©   (2008-04-17 16:09) [11]

> Johnmen  (17.04.2008 16:02:09)  [9]

Или придет ковбой который не умеет читать.


 
Palladin ©   (2008-04-17 16:10) [12]

lines[c] это ты обращаешься к строчке в memo, что бы обратится еще и к буковке в этой строчке нужно еще один индекс дописать


 
Плохиш ©   (2008-04-17 16:10) [13]


> потом идёт цикл по строке и каждый символ проверяет

Можно привести место из кода, которое подтвердит это высказывание? Т.к. в [0] этого нет.


 
Плохиш ©   (2008-04-17 16:12) [14]


> Palladin ©   (17.04.08 16:10) [12]

"Такие красивые намёки" (c) котёнок Гав :-)


 
Sairex ©   (2008-04-18 17:16) [15]

Такс как искать буквы (цифры, все равно одно и тоже)

procedure TF1.Button1Click(Sender: TObject);
Var  I:Integer;
begin
F1.memo1.lines.LoadFromFile("a.txt");
 For i:=0  to F1.Memo1.Lines.Count-1 do
   begin
     if Pos("1",F1.memo1.Lines.strings[i])>0 then ShowMessage("Yo!")
     else ShowMessage("Oh no!");
   end;
end;


 
Palladin ©   (2008-04-18 17:17) [16]

за метлой


 
Sairex ©   (2008-04-18 17:18) [17]

Такс как искать буквы (цифры, все равно одно и тоже)

procedure TF1.Button1Click(Sender: TObject);
Var  I:Integer;
begin
F1.memo1.lines.LoadFromFile("a.txt");
 For i:=0  to F1.Memo1.Lines.Count-1 do
   begin
     if Pos("1",F1.memo1.Lines.strings[i])>0 then ShowMessage("Yo!")
     else ShowMessage("Oh no!");
   end;
end;


 
Sairex ©   (2008-04-18 17:19) [18]

Ой сори за флуд прокся глюкнула


 
Sairex ©   (2008-04-18 17:20) [19]


> Palladin ©   (18.04.08 17:17) [16]
> за метлой

В смысле?


 
Плохиш ©   (2008-04-18 17:20) [20]

за метлой


 
Царев Евгений ©   (2008-04-18 21:23) [21]


var
 Form1: TForm1;

implementation

{$R *.dfm}

type TCharSet = set of Char;

 TTextFileInfo = packed record
 _Assigned: Boolean;
 LineCount : Integer;        // Всего линий в файле
 ValidCharCount : Integer;   // Всего нужных символов
 OtherCharCount  : Integer;  // Всего ненежных символов
 IllegalLineCount: Integer;  // Всего ненужных строк
 ValidLineCount: Integer;    // Всего нужных линий
end;

const
FindCharGl = ["А","а","Е","е","Ё","ё","И","и","О","о",
            "У","у","Ы","ы","Э","э","Ю","ю","Я","я"]; // гласные
FindCharSg = ["Б","б","В","в","Г","г","Д","д","Ж","ж","З","з","Й","й","К","к","Л","л","М","м" ,"Н","н","П","п",
            "Р","р","С","с","Т","т","Ф","ф","Х","х","Ц","ц","Ч","ч","Ш","ш","Щ","щ","Ъ","ъ", "Ь","ь"]; // согласные
FindCharDt = ["0".."9"]; // цыфры

function GetTextFileInfo(Filename: String; AStrings : TStrings; CharSet: TCharSet): TTextFileInfo;
var
I,J: Integer;
IsIllegalLine: Boolean;
begin
 if not FileExists(Filename) then
  begin
   ShowMessageFmt("File %s not found",[Filename]);
   Result._Assigned:= False;
   Exit;
  end;
with Result, AStrings do
 begin
 Clear;
 LoadFromFile(Filename);
 _Assigned:= True;
 LineCount:= Count;
 ValidCharCount := 0;
 OtherCharCount := 0;
 IllegalLineCount := 0;
 ValidLineCount := 0;
  for I := 0 to Count - 1 do
      begin
       IsIllegalLine := True;
       for J :=1 to Length(Strings[I]) do
        begin
         if Strings[I][J] in CharSet then
           begin
            if IsIllegalLine then Inc(ValidLineCount);
            IsIllegalLine := False;
            Inc(ValidCharCount);
           end
           else
            Inc(OtherCharCount);
        end; //for J:=1
        if IsIllegalLine then Inc(IllegalLineCount);
      end; //for I:= 0
   end // with
end;

procedure TForm1.Button1Click(Sender: TObject);
var
TFI: TTextFileInfo;
begin
// Учет на согласные
TFI:= GetTextFileInfo("test.txt",Memo1.Lines,FindCharSg);
 if TFI._Assigned then
 begin
   with TFI do
   ShowMessageFmt("Всего линий в файле %d"#13#10 +
                  "Найдено соответсвующих символов %d"#13#10 +
                  "Найдено соответсвующих линий %d"#13#10 +
                  "Не соответствующих символов %d"#13#10 +
                  "Не соответствующих линий %d",
                  [LineCount, ValidCharCount, ValidLineCount, OtherCharCount, IllegalLineCount]);
   end;
 end;


 
Оригинал   (2008-04-18 21:51) [22]

function CountBukov(const FileName: String): Integer;
var
 L: TStringList;
 i,j: Integer;
begin
 L := TStringList.Create;
 try
   L.LoadFromFile(FIleName);
   Result := 0;
   for I := 0 to L.Count - 1 do
   begin
     for j :=1 to Length(L[i]) do
     begin
       if AnsiUpperCase(L[i])[j] in ["E","Y","U","I","O","A","Е","Ы","А","О","Э","Я","И","Ю"] then
       begin
         Inc(Result);
         break;
       end;
     end;
   end;
   Result := L.Count-Result;
 finally
   L.Free;
 end;
end;



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

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

Наверх




Память: 0.53 MB
Время: 0.023 c
2-1208707819
lewka-serdceed
2008-04-20 20:10
2008.05.18
имя создаваемого файла Word


15-1207050398
Ega23
2008-04-01 15:46
2008.05.18
Блин... :(


2-1208603961
lewka-serdceed
2008-04-19 15:19
2008.05.18
как убрать крестик, которым закрывается форма.


2-1208344255
lewka-serdceed
2008-04-16 15:10
2008.05.18
Ошибка "Invalid variant operation"


8-1180007525
Огнеяр
2007-05-24 15:52
2008.05.18
СОС!!! (Быстрый вывод изображения. OpenGL?)