day & night

Замена данных файла данными из другого файла, ищется....
Дата обновления: , перейти к новому сообщению
#1
nokeMoH



профи!
*****

Группа: Пользователи
Сообщений: 1.076
Регистрация: 23.08.2008
Пользователь №: 1.040.887


Респектов: 124
-----X----


Предупреждений:


Прошу пожалуйста у Вас помощи.. нужна самая обыкновенная простенькая бональная программка для замены Данных например 1'ого файла, из Данных файла 2'ого .... под Данными подразумевается его Hex'составляющие.. то есть те данные, которые можно увидеть в любом Hex'редакторе.... Например есть 2 файла! допустим они равного диаметра.. Нужно чтобы через эту мини программку, предположим в 2'ух строчках слева, в 1'ой - указывалось бы начало, во 2'ой - конец пордкового номера Байта (в цыфрах), и точно так же вправой его части, 2'е строчки... начало и конец! (те самые участки файлов, что и нужно между собой заменить) разумеется Общая Длина в Байтах выбранных значений как там, так и там совпадает.. после чего нужно чтобы произошла замена выбранных параметров Из 2'ого файла в Файл #1 ....

то есть к примеру имеется пару файлов.. все по - 1000 байт -, допустим.. Файл #1 кидаем в Левую сторону программки, а Файл #2 бросаем туда же, но только в правую его сторону.. и под каждым из переброшенных файлов располагается по 2 строчки.. Идентично выставляются значения.. предположим 1). - 7 и 352 ; 2). - 7 и 352 .... вследствии чего должна произойти замена Участка из 2'ого файла От байта под №7 и до байта под №352 в участок файла #1 на те же самые места с перезаписью.. а зоны 1-6 и 353-1000 в файле #1 остались бы не тронуты.... Результатом чего должен был бы появиться файл, с Началом и Концом файла #1, а серединой файла #2 ....


sad.gif смотрел искал подобные программы на все возможных порталах, но ничего вразумительного так обнаружить и не удалось(.. Есть просто программы, которые работают только с одним файлом за 1 раз, и то, только по уже приготовленным заранее шаблонам, а замена производилась даже не в Hex данных, а просто текста, что совсем не умесно(..

__________________


Прошу у Вас помощи! пожалуйста.. если тут найдутся доброжелатели, которых я ни так сильно поднапряг этой озадачей, прошу пожалуйста помочь.. Данный софт на самом деле просто не обходим, ибо с подобной ситуацией порой приходиться сталкиваться давольнатаки частенько, ... а проделовать описанную каждый раз выше оперцию иной раз просто запарывает делать это всё в ручную.. что-то приходиться считать, сверху, снизу, отступы слева-права.. иногда путаешся, и пересчитавыть уже просто терпения и нервов на всё это дело не хватает(..
User is offline
Go topGo end

Ответов(1 - 9)
31.05.2009 - 22:09
#2
ЭЖД



*nix`оид
[SoftoRooMTeaM] Group Icon

Группа: Наши Люди
Сообщений: 11.935
Регистрация: 18.09.2004
Пользователь №: 1.679


Респектов: 789
-----XXXX-




ph34r.gif все уже написано... GNU Utils: cat, grep etc
User is offline
Go topGo end
31.05.2009 - 22:27
#3
nokeMoH



профи!
*****

Группа: Пользователи
Сообщений: 1.076
Регистрация: 23.08.2008
Пользователь №: 1.040.887


Респектов: 124
-----X----


Предупреждений:


sad.gif ничего из вышесказанного нипонел.. Утилитка в данный момент нужна под WinXP систему, ... работа в среде Linux тоже бы желательно, ... но пока хотелось бы поработать в WinXP, ....
User is offline
Go topGo end
1.06.2009 - 9:49
#4
charodey_mag



Опытный юзверь
**

Группа: Пользователи
Сообщений: 147
Регистрация: 15.02.2007
Из: Opera
Пользователь №: 335.462


Респектов: 22
-----X----


Предупреждений:


На Delphi это буквально 5 строк. Вот пример:
Code

procedure Replace(FileNameS,FileNameD:string; Start,Stop:longword);
var f1,f2:TFileStream;
begin
f1:=TFileStream.Create(FileNameS, fmOpenRead);
f2:=TFileStream.Create(FileNameD, fmOpenWrite);
f1.Position:=Start;
f2.Position:=Start;
f2.CopyFrom(f1,Stop-Start);
f1.Free;
f2.Free;
end;


Есть еще вариант через vbs:
Code

 Const StartP = 3   'начальная позиция
  Const StopP = 5   'конечная позиция
  Const FileS = "C:\1.txt" 'файл источник
  Const FileD = "C:\2.txt" 'файл приемник
  Const adTypeBinary = 1
  Const adSaveCreateOverWrite = 2
  Dim StreamS, StreamD, buf
  Set StreamS = CreateObject("ADODB.Stream")
  StreamS.Type = adTypeBinary
  StreamS.Open
  StreamS.LoadFromFile FileS
  StreamS.Position = StartP
  buf = StreamS.Read(StopP - StartP)
  Set StreamD = CreateObject("ADODB.Stream")
  StreamD.Type = adTypeBinary
  StreamD.Open
  StreamD.LoadFromFile FileD
  StreamD.Position = StartP
  StreamD.Write(buf)
  StreamD.SaveToFile FileD,adSaveCreateOverWrite

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

PS. Учите языки программирования. Человеку работающему на компьютере их знание может очень сильно облегчить жизнь
User is offline
Go topGo end
1.06.2009 - 16:38
#5
nokeMoH



профи!
*****

Группа: Пользователи
Сообщений: 1.076
Регистрация: 23.08.2008
Пользователь №: 1.040.887


Респектов: 124
-----X----


Предупреждений:


Цитата | Quote(charodey_mag @ 1.06.2009 - 9:49)
-На Delphi это буквально 5 строк, ... и
-Есть еще вариант через vbs, ...
-С одной стороны проще, так как не надо ничего кроме блокнота. С другой, надо каждый раз исправлять файл или прикручивать кучу диалогов, что может быть не удобно.
-PS.: Учите языки программирования. Человеку работающему на компьютере их знание может очень сильно облегчить жизнь
да я та ничего против не имею, на счёт зубрёвки языков програмирования.. но учитывая то свободное личное время, что остаётся после работы, учёбы и всяких подручных ежедневных дел на его изучение, вопрос сразу отпадает(.. по этому помощи приходиться просить у своих соседей по топику..

Если есть такая возможность, помогите пожалуйста.. На самом деле этот вид обеспечения просто крайне необходим.. просто что ещё касается непосредственно самой программки, то хотелось бы расчитывать на несколько замен за 1 шаг.. то есть ни например вот только чтобы грубо-говоря строго с 7 по 352 происходили замены в файлах (на выбор), а было бы (?) неограниченное количество шаг-замен .... всмысле чтобы за 1 раз можно было бы заминить в 1 ход между файлами байт-участки с 7 по 352, с 623 по 720 и с 735 по 932 .... это к примеру.. но точное количество замен назвать трудно, они всегда разные.. -В этом веть наверное ни будет особой сложности добавить ещё одно окошко в програамку, которое бы тоже производило замены в файле на ряду с 1'ым окошком от сих до сих? или воопще низнаю как это всё может выглядеть.. может просто добавить *.txt файлик в папочку с программкой, и там уже указывать что-то типа?

Code
1

7-352

2

623-720

3

720-735


unsure.gif я не слишком ли много прошу за 1 день, а? ....
User is offline
Go topGo end
2.06.2009 - 7:28
#6
charodey_mag



Опытный юзверь
**

Группа: Пользователи
Сообщений: 147
Регистрация: 15.02.2007
Из: Opera
Пользователь №: 335.462


Респектов: 22
-----X----


Предупреждений:


вот, собрал нечто похожее
User is offline
Go topGo end
2.06.2009 - 8:59
#7
nokeMoH



профи!
*****

Группа: Пользователи
Сообщений: 1.076
Регистрация: 23.08.2008
Пользователь №: 1.040.887


Респектов: 124
-----X----


Предупреждений:


Цитата | Quote(charodey_mag @ 2.06.2009 - 7:28)
вот, собрал нечто похожее
большое спасибо, но я нипонил как с ней работать(.. Создал 2 фалика.. 1.txt и 2.txt, как указано в настройках программы, поместил их в Лок.диск C:\, 1 раз Кликнул на "Add", что должно значить "добавить +1 замену", а потом тыркнул на "Replace!" ничего ни произошло( ....

можно пожалуйста мини-инструкцию к этому Free'продукту?)..
User is offline
Go topGo end
2.06.2009 - 12:28
#8
charodey_mag



Опытный юзверь
**

Группа: Пользователи
Сообщений: 147
Регистрация: 15.02.2007
Из: Opera
Пользователь №: 335.462


Респектов: 22
-----X----


Предупреждений:


Source File - файл источник данных
Dest File - файл приемник данных (то куда будут записаны байты из Source).
Range - диапазон. 3-5 т.е. заменить с 3 по 5 байты, пишется все вместе через "-"(!!! 3 не включая!!!, т.е с 3 по 5 заменится 2 байта).

Создаешь файлы
C:\1.txt
C:\2.txt
В первый пишешь: 123456
Во второй пишешь: йцукен
Нажимаешь add
Нажимаешь replace
Смотришь файл C:\2.txt там получается: йцу45н

Смысл понятен?

В Source File указываешь свой файл, в Dest File указываешь тот в которм надо замнить, заполняешь список замен и все...
User is offline
Go topGo end
2.06.2009 - 13:50
#9
nokeMoH



профи!
*****

Группа: Пользователи
Сообщений: 1.076
Регистрация: 23.08.2008
Пользователь №: 1.040.887


Респектов: 124
-----X----


Предупреждений:


smile.gif аа, да да, типерь ясно.. попробывал на этом примере, всё заменилось).. но опять перепробывал с тем примером что проверялся в 1'ый раз, опять ничего не вышло(.. видимо программка робит только с Win'четабильным текстом, а с комбинациями в диапазане 00-ff не читается(.. можно плиз её доработать до полной функцеспособнолсти?).. вот тот код, который через неё пройти не смог.. писал на бум, подряд, всего 5 байтов получилось....

Цитата | Quote




unsure.gif и ещё, можно её пожалуйста модернизировать чтобы 2 файлика выбирались пользовательские, через кнопочку например "Выбор" ... и если не затруднит, то что бы возможность Drop'n'Drag тоже присутствовала)..

smile.gif а хотя на самом деле странно воопще как-то получается.. выбираеш к примеру участок 3-5 и жмёш на Реплейс, а меняется только зона идентична 4-5)..
User is offline
Go topGo end
2.06.2009 - 13:53
#10
middleman



профи!
[SoftoRooMTeaM] Group Icon

Группа: Наши Люди
Сообщений: 3.366
Регистрация: 15.03.2005
Из: Украина, Харьков
Пользователь №: 8.829


Респектов: 744
-----XXXX-




А если нужно заменить с нулевого байта, то вводить "-1"? smile.gif
User is offline
Go topGo end

Topic Options
Сейчас: 27.04.2024 - 21:50
Мобильная версия | Lite версия