Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.01.18;
Скачать: [xml.tar.bz2];

Вниз

Работа со char массивом   Найти похожие ветки 

 
programmer90   (2008-12-02 16:28) [0]

Здравствуйте увадаемые мастера!
Возникла небольшая проблема
Даны два файла с массивом символов.
Найти первый различный символ  в файле.
Например файл1:
a7df3j20fn dws
Файл2
a7df3j20fn1dws
первый различный символ в файле1  находится на позиции (1,11)
(11-ый символ в файле 1 - " " , а в файле 11 символ  "1"...)
Плиз объясните подробно насколько это возможно...
Можно на pascal.
Спасибо всем!


 
stas ©   (2008-12-02 16:31) [1]

возможно. Например циклом перебрать.


 
KilkennyCat ©   (2008-12-02 17:00) [2]

Мастера не увядают!


 
programmer90   (2008-12-02 17:27) [3]


> Мастера не увядают!

Да уж...зато я уже увял:)


 
Slym ©   (2008-12-02 17:41) [4]

1. Найти первый различный символ  в 2 строках...
2. Считать 1 файл в 1 строку, 2 файл во 2 строку...
3. если файлы большие читать по немногу, но в цикле до конца файла


 
Правильный$Вася   (2008-12-02 17:43) [5]

strcmp


 
KilkennyCat ©   (2008-12-02 17:57) [6]

i := 1;
a := true;
while (not eof(f1)) or (not eof(f2)) or (not a) do begin
 read(f1, x);
 read(f2, y);
 a := x = y;
 inc(i);
end;

if not a then result := i else один файл закончился раньше (один из файлов - копия куска другого), или оба одинаковые


 
KilkennyCat ©   (2008-12-02 17:58) [7]

ошибся, i := 0;


 
clickmaker ©   (2008-12-02 18:03) [8]

я бы замапил в память... но не весь, а кусок. Если куски одинаковые, то следующий кусок


 
KilkennyCat ©   (2008-12-02 18:07) [9]


> clickmaker ©

а потом преподаватель будет пить водку и плакать от счастья, что нашелся и в его толпе гений! :)


 
Leonid Troyanovsky ©   (2008-12-02 18:12) [10]


> programmer90   (02.12.08 16:28)  

> Плиз объясните подробно насколько это возможно...

Специально для двоечников в свое время написал специальную функцию:

function CompareStreams(Stream1, Stream2: TStream): Boolean;
const
 BufSize = 4096;
var
 StreamSize: Int64;
 nb1, nb2: Cardinal;
 buf1, buf2: array [0..BufSize-1] of Byte;
begin
 StreamSize := Stream1.Size;
 Result := StreamSize = Stream2.Size;
 if not Result then
   Exit;
 while (Stream1.Position < StreamSize) do
   begin
     nb1 := Stream1.Read(buf1, BufSize);
     nb2 := Stream2.Read(buf2, BufSize);
     if nb1 <> nb2 then
       raise EReadError.Create("Compare error");
     Result := CompareMem(@buf1, @buf2, nb1);
     if not Result then
       Exit;
   end;
end;

Дополнить ее нахождением позиции отличного символа входит
в домашнее задание.

--
Regards, LVT.


 
programmer90   (2008-12-02 18:48) [11]


> KilkennyCat ©   (02.12.08 17:57) [6]

Проклятый рантайм 103....

> Дополнить ее нахождением позиции отличного символа входит

Это понятно...
Параметры функции  не смог  подставить  и это понятно почему....я не знаю что такое TStream.... вот и немогу его использовать


 
Leonid Troyanovsky ©   (2008-12-02 18:51) [12]


> programmer90   (02.12.08 18:48) [11]

> ...я не знаю что такое TStream.... вот и немогу его использовать

TFileStream + F1.

--
Regards, LVT.



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

Форум: "Начинающим";
Текущий архив: 2009.01.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.006 c
15-1226136730
sloosar
2008-11-08 12:32
2009.01.18
Скрытия IP адреса


15-1227153907
Slider007
2008-11-20 07:05
2009.01.18
С днем рождения ! 20 ноября 2008 четверг


2-1228638477
denissoft
2008-12-07 11:27
2009.01.18
Комонент для отображения дерева?


4-1200044109
JetuS
2008-01-11 12:35
2009.01.18
Как загрузить анимационный курсор (ANI) из ресурсов?


2-1228400690
istok2
2008-12-04 17:24
2009.01.18
изучить почему не удаляется файл...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский