Вверх ↑
Этот топик читают: Гость
Ответов: 21
Рейтинг: 3
#1: 2013-02-24 13:11:59 ЛС | профиль | цитата
Доброго времени суток!
Пытаюсь сделать приложение которое бы заменяло в открытом txt фале необходимую строку (полностью) на другую. Но ни чего не выходит.
То есть: предположим имеется файл "adm.txt" содержит строки:
500 adm tools
501 adm tools
502 adm tools
и тд.
пытаюсь сделать так что бы приложение автоматически находило число 500, 501, 502 или другое из файла и заменяло СТРОКУ где найдено число на другую.
Например:
500 adm tools // Строка находится в файле
мы ищем цифру 500 и заменяем СТРОКУ на нужное нам, получаем:
500 adm tools med
Подскажите новичку, если не трудно. Заранее благодарен!
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#2: 2013-02-24 14:14:26 ЛС | профиль | цитата
ONaSn писал(а):
находило число 500, 501, 502
ONaSn писал(а):
приложение автоматически находило число 500, 501, 502 или другое(какое) из файла и заменяло СТРОКУ где найдено число на другую(какую)
И что это за хитрые числа ? Они идут по порядку или может быть 502,500,501 ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8926
Рейтинг: 823
#3: 2013-02-24 15:45:27 ЛС | профиль | цитата
ONaSn, code_30421.txt
карма: 19

0
файлы: 1code_30421.txt [2.3KB] [156]
Ответов: 16884
Рейтинг: 1239
#4: 2013-02-24 16:20:32 ЛС | профиль | цитата
Леонид, пример хороший - я нихрена не понял. (как и из описания TC )
А если завтра ему нужны будут другие номера,
что бы приложение автоматически находило число 500, 501, 502 или другое
к примеру: 50, 51, 52, 150, 120 и т.п.
Или заменить
500 adm tools
на
500 adm tools her.

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Гость
Ответов: 17029
Рейтинг: 0
#5: 2013-02-24 16:43:56 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2017-03-05 07:22:07
карма: 0

0
Ответов: 8926
Рейтинг: 823
#6: 2013-02-24 17:09:52 ЛС | профиль | цитата
Tad писал(а):
если завтра ему нужны будут другие
так в таблице что на что менять, пиши хоть шило, хоть мыло Можно и множественную замену применить, но для ТС, вероятно, сложно будет разобраться, 17 постов всего
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#7: 2013-02-24 20:57:22 ЛС | профиль | цитата
Ну тогда и моих 5 копеек
find&replace.rar
------------ Дoбавленo в 20.57:
Леонид писал(а):
сложно будет разобраться, 17 постов всего
Мозги, лист бумаги и карандаш со стиралкой в помощь.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1find&replace.rar [1.6KB] [87]
Ответов: 21
Рейтинг: 3
#8: 2013-02-26 07:04:04 ЛС | профиль | цитата
Здравствуйте

Спасибо что откликнулись и не остались в стороне . Опишу более подробно и как можно точнее.

Есть файл "handing.cfg" (открывается блокнотом)
Ссылка на файл, ВИРУСОВ НЕТ: http://www.mediafire.com/?976n1vl1azcjjsm

В файле интересуют строки такого типа:

LANDSTAL 1700.0 5008.3 2.5 0.0 0.0 -0.3 85 0.75 0.85 0.5 5 160.0 25.0 20.0 4 D 6.2 0.60 0 35.0 2.4 0.08 0.0 0.28 -0.14 0.5 0.250.27 0.23 25000 205000020 10

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

Например:
Строка в файле которую программа находит автоматически (поиск я пытался делать по названию FIRETRUK):

FIRETRUK 6500.0 36670.8 3.0 0.0 0.0 0.0 90 0.55 0.8 0.5 5 170.0 27.0 10.0 R D 10.00 0.45 0 27.0 1.2 0.08 0.0 0.47 -0.17 0.5 0.00.2 0.26 15000 409800 12

и заменяет на другую
FIRETRUK3500.0 10000.0 2.0 0.0 0.0 0.0 90 0.50 0.8 0.5 5 170.0 27.0 10.0 R D 10.00 0.45 0 27.0 1.2 0.08 0.0 0.50 -0.15 0.5 0.0 0.2 0.26 11000 4000 0 0 1 2

Возможно ли это реализовать?

карма: 0

0
Ответов: 1536
Рейтинг: 176
#9: 2013-02-26 09:33:46 ЛС | профиль | цитата
ONaSn,
Add(MainForm,6280154,168,168)
{
Width=846
Height=145
}
Add(Button,11753649,252,245)
{
Left=60
Top=60
link(onClick,4672000:doEvent1,[])
}
Add(Edit,13584240,350,168)
{
Left=125
Top=60
Text="3500.0"
}
Add(Label,11792733,602,294)
{
Left=10
Top=30
Caption="Ответ"
}
Add(InfoTip,10395767,98,77)
{
Info=#152:FIRETRUK 6500.0 36670.8 3.0 0.0 0.0 0.0 90 0.55 0.8 0.5 5 170.0 27.0 10.0 R D 10.00 0.45 0 27.0 1.2 0.08 0.0 0.47 -0.17 0.5 0.0 0.2 0.26 15000 409800 12|152:FIRETRUK 3500.0 10000.0 2.0 0.0 0.0 0.0 90 0.50 0.8 0.5 5 170.0 27.0 10.0 R D 10.00 0.45 0 27.0 1.2 0.08 0.0 0.50 -0.15 0.5 0.0 0.2 0.26 11000 400000 12|
Font=[MS Sans Serif,10,1,0,1]
Width=1065
Height=39
}
Add(FormatStr,16163529,343,294)
{
DataCount=33
Mask="%1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 %13 %14 %15 %16 %17 %18 %19 %20 %21 %22 %23 %24 %25 %26 %27 %28 %29 %30 %31 %32 %33"
link(onFString,11792733:doText,[])
link(Str1,15347843:Part1,[])
link(Str2,13584240:Text,[])
link(Str3,4833952:Text,[(363,215)(391,215)])
link(Str4,9828551:Text,[(370,222)(426,222)])
link(Str5,15347843:Part5,[])
link(Str6,15347843:Part6,[])
link(Str7,15347843:Part7,[])
link(Str8,15347843:Part8,[])
link(Str9,6315679:Text,[(405,230)(461,230)])
link(Str10,15347843:Part10,[])
link(Str11,15347843:Part11,[])
link(Str12,15347843:Part12,[])
link(Str13,15347843:Part13,[])
link(Str14,15347843:Part14,[])
link(Str15,15347843:Part15,[])
link(Str16,15347843:Part16,[])
link(Str17,15347843:Part17,[])
link(Str18,15347843:Part18,[])
link(Str19,15347843:Part19,[])
link(Str20,15347843:Part20,[])
link(Str21,15347843:Part21,[])
link(Str22,15347843:Part22,[])
link(Str23,15347843:Part23,[])
link(Str24,15347843:Part24,[])
link(Str25,6119226:Text,[])
link(Str26,5981883:Text,[(524,219)(552,219)])
link(Str27,15347843:Part27,[])
link(Str28,15347843:Part28,[])
link(Str29,15347843:Part29,[])
link(Str30,15347843:Part30,[])
link(Str31,10347179:Text,[(559,220)(587,220)])
link(Str32,16718578:Text,[(566,229)(622,229)])
link(Str33,15347843:Part33,[])
}
Add(Hub,4672000,301,245)
{
link(onEvent1,15347843:doSplit,[])
link(onEvent2,16163529:doString,[(333,258)(333,300)])
}
Add(Edit,4833952,385,168)
{
Left=180
Top=60
Text="10000.0"
}
Add(Edit,9828551,420,168)
{
Left=240
Top=60
Text="2.0"
}
Add(Edit,6315679,455,168)
{
Left=300
Top=60
Text="0.50"
}
Add(Edit,6119226,511,168)
{
Left=360
Top=60
Text="0.50"
}
Add(Edit,5981883,546,168)
{
Left=420
Top=60
Text="-0.15"
}
Add(Edit,10347179,581,168)
{
Left=475
Top=60
Text="11000"
}
Add(Edit,16718578,616,168)
{
Left=535
Top=60
Text="400000"
}
Add(Label,15098679,308,168)
{
Left=10
Top=10
Width=785
Caption="FIRETRUK 6500.0 36670.8 3.0 0.0 0.0 0.0 90 0.55 0.8 0.5 5 170.0 27.0 10.0 R D 10.00 0.45 0 27.0 1.2 0.08 0.0 0.47 -0.17 0.5 0.0 0.2 0.26 15000 409800 12"
}
Add(MultiStrPart,15347843,343,245)
{
Char=" "
Count=33
link(Str,15098679:Caption,[(349,217)(314,217)])
}
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 16884
Рейтинг: 1239
#10: 2013-02-26 11:00:51 ЛС | профиль | цитата
ser_davkin, исходник (handing.cfg) смотрел ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 21
Рейтинг: 3
#11: 2013-02-26 11:04:14 ЛС | профиль | цитата
ser_davkin, Здравствуйте!
Спасибо что уделили свое время, в Вашем коде я немного не разобрался как открыть файл "handing.cfg"
карма: 0

0
Ответов: 1536
Рейтинг: 176
#12: 2013-02-26 11:31:21 ЛС | профиль | цитата
ONaSn, количество пробелов в строке параметров важно или нет?
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 8926
Рейтинг: 823
#13: 2013-02-26 12:49:14 ЛС | профиль | цитата
ONaSn, code_30433.txt
Открываем файл, обозначаем маску и ищем по ней строки, из найденых выделяем нужную, в Edit делаем необходимые замены, заменяем и сохраняем.
карма: 19

0
файлы: 1code_30433.txt [1.8KB] [131]
Ответов: 1536
Рейтинг: 176
#14: 2013-02-26 13:26:06 ЛС | профиль | цитата
ONaSn,
Add(MainForm,14387938,238,161)
{
Width=1142
Height=622
}
Add(Edit,13584240,644,196)
{
Left=245
Top=10
Text="3500.0"
}
Add(Label,11792733,917,329)
{
Left=10
Top=60
Width=1109
Height=19
Font=[Arial Narrow,8,0,128,204]
Caption="Результат"
AutoSize=1
}
Add(InfoTip,10395767,91,84)
{
Info=#155:FIRETRUK 6500.0 36670.8 3.0 0.0 0.0 0.0 90 0.55 0.8 0.5 5 170.0 27.0 10.0 R D 10.00 0.45 0 27.0 1.2 0.08 0.0 0.47 -0.17 0.5 0.0 0.2 0.26 15000 4098 0 0 1 2|155:FIRETRUK 3500.0 10000.0 2.0 0.0 0.0 0.0 90 0.50 0.8 0.5 5 170.0 27.0 10.0 R D 10.00 0.45 0 27.0 1.2 0.08 0.0 0.50 -0.15 0.5 0.0 0.2 0.26 11000 4000 0 0 1 2|
Font=[MS Sans Serif,10,1,0,1]
Width=1065
Height=39
}
Add(FormatStr,16163529,637,329)
{
DataCount=36
Mask=""
Point(doMask)
Point(FString)
link(onFString,11792733:doText,[])
link(Str1,15347843:Part1,[])
link(Str2,13584240:Text,[])
link(Str3,4833952:Text,[(657,243)(685,243)])
link(Str4,9828551:Text,[(664,251)(720,251)])
link(Str5,15347843:Part5,[])
link(Str6,15347843:Part6,[])
link(Str7,15347843:Part7,[])
link(Str8,15347843:Part8,[])
link(Str9,6315679:Text,[(699,258)(755,258)])
link(Str10,15347843:Part10,[])
link(Str11,15347843:Part11,[])
link(Str12,15347843:Part12,[])
link(Str13,15347843:Part13,[])
link(Str14,15347843:Part14,[])
link(Str15,15347843:Part15,[])
link(Str16,15347843:Part16,[])
link(Str17,15347843:Part17,[])
link(Str18,15347843:Part18,[])
link(Str19,15347843:Part19,[])
link(Str20,15347843:Part20,[])
link(Str21,15347843:Part21,[])
link(Str22,15347843:Part22,[])
link(Str23,15347843:Part23,[])
link(Str24,15347843:Part24,[])
link(Str25,6119226:Text,[])
link(Str26,5981883:Text,[(818,243)(846,243)])
link(Str27,15347843:Part27,[])
link(Str28,15347843:Part28,[])
link(Str29,15347843:Part29,[])
link(Str30,15347843:Part30,[])
link(Str31,10347179:Text,[(853,243)(881,243)])
link(Str32,16718578:Text,[(860,255)(916,255)])
link(Str33,15347843:Part33,[])
link(Str34,15347843:Part34,[])
link(Str35,15347843:Part35,[])
link(Str36,15347843:Part36,[])
}
Add(Edit,4833952,679,196)
{
Left=300
Top=10
Text="10000.0"
}
Add(Edit,9828551,714,196)
{
Left=360
Top=10
Text="2.0"
}
Add(Edit,6315679,749,196)
{
Left=420
Top=10
Text="0.50"
}
Add(Edit,6119226,805,196)
{
Left=480
Top=10
Text="0.50"
}
Add(Edit,5981883,840,196)
{
Left=540
Top=10
Text="-0.15"
}
Add(Edit,10347179,875,196)
{
Left=595
Top=10
Text="11000"
}
Add(Edit,16718578,910,196)
{
Left=655
Top=10
Text="4000"
}
Add(Label,15098679,553,238)
{
Left=10
Top=40
Width=1110
Height=19
Font=[Arial Narrow,8,0,0,204]
Caption="Исходная строка"
AutoSize=1
}
Add(MultiStrPart,15347843,637,287)
{
Char=" "
Count=36
}
Add(ODialog,12012885,168,224)
{
Filter="cfg|*.cfg"
link(onExecute,9467347:doValue,[])
}
Add(Button,15816021,84,224)
{
Left=15
Top=10
Width=90
Caption="Открыть файл"
link(onClick,12438171:doEvent1,[])
}
Add(ArrayEnum,8109872,343,273)
{
link(onItem,4526452:doCompare,[])
link(Array,15259490:Var2,[])
}
Add(StrMask,4526452,392,273)
{
Mask="FIRETRUK*"
link(onTrue,9521311:doEvent1,[])
AddHint(-17,-33,73,13,Mask)
}
Add(Replace,15945340,553,287)
{
SubStr=" "
DestStr=" "
link(onReplace,13027461:doTrim,[])
link(Str,15098679:Caption,[])
}
Add(Trim,13027461,595,287)
{
Char=" "
Mode=6
link(onTrim,15347843:doSplit,[])
}
Add(ArrayRW,15049622,329,378)
{
link(Array,15259490:Var1,[(335,257)])
link(Index,3298451:Var2,[])
link(Value,16163529:FString,[(349,354)(382,354)(382,394)(643,394)])
}
Add(GetDataEx,15259490,343,252)
{
link(Data,5253835:Array,[])
}
Add(Hub,9521311,448,280)
{
OutCount=4
link(onEvent1,15098679:doText,[(483,286)(483,244)])
link(onEvent2,15885503:doValue,[])
link(onEvent3,3621419:doWork1,[(478,300)(478,342)])
link(onEvent4,210827:doWork1,[(471,307)(471,338)(263,338)])
}
Add(MultiElement,3621419,553,336)
{
@Hint=#51:Создаем маску, включающая в себя пробелы и отступы.|
link(onEvent1,14926577:doEvent1,[])
AddHint(-79,73,178,26,@Hint)
}
BEGIN_SDK
Add(EditMulti,15415482,21,21)
{
EventCount=1
WorkCount=1
Width=748
Height=242
link(doWork1,6702087:doEnum,[(35,27)(35,69)])
}
Add(Str_Enum,6702087,49,63)
{
Delimiter=""
link(onEnum,9173637:doCompare,[])
link(onEndEnum,2304402:doTrim,[(93,76)(93,132)])
}
Add(If_else,9173637,105,63)
{
Type=5
Op2=String( )
link(onTrue,11854013:doCompare,[(145,69)(145,62)])
link(onFalse,16400455:doWork3,[(256,76)])
}
Add(StrCat,6077697,280,63)
{
Point(doClear)
link(Str1,738914:Var1,[(286,51)(274,51)(274,107)])
}
Add(DoData,12555137,637,203)
{
link(onEventData,15415482:onEvent1,[(719,209)(719,27)])
link(Data,3202301:Var2,[])
}
Add(GetDataEx,738914,273,102)
{
Angle=1
link(Data,6077697:Result,[(286,107)])
}
Add(If_else,11854013,154,56)
{
Type=5
Op2=String( )
link(onTrue,9500878:doData,[])
link(onFalse,16400455:doWork2,[])
}
Add(HubEx,16400455,252,63)
{
link(onEvent,6077697:doStrCat,[])
}
Add(DoData,9500878,203,56)
{
Data=String(%)
link(onEventData,16400455:doWork1,[(256,62)])
}
Add(Trim,2304402,273,126)
{
Char="%"
Mode=6
link(onTrim,11246618:doTrim,[])
link(Text,738914:Var2,[])
}
Add(Trim,11246618,322,126)
{
Char="%"
Mode=1
link(onTrim,11412039:doStrCat,[])
}
Add(StrCat,11412039,364,126)
{
Str1="%"
link(onStrCat,16031411:doEvent1,[])
}
Add(Str_Enum,8143037,434,140)
{
Delimiter=""
link(onEnum,11708145:doCompare,[])
link(onEndEnum,6631287:doEvent1,[(476,153)(476,209)])
}
Add(If_else,11708145,483,140)
{
Type=5
Op2=String(%)
link(onTrue,16580774:doWork2,[])
link(onFalse,3737629:doNext,[])
}
Add(StrCat,16464744,644,140)
{
Point(doClear)
link(Str1,3202301:Var1,[(650,128)(638,128)(638,184)])
}
Add(GetDataEx,3202301,637,179)
{
Angle=1
link(Data,16464744:Result,[(650,184)])
}
Add(StrCat,14794045,581,147)
{
Str1="%"
link(onStrCat,16580774:doWork3,[(620,153)])
}
Add(CounterEx,3737629,532,147)
{
Point(doReset)
link(onNext,14794045:doStrCat,[])
}
Add(Hub,16031411,406,126)
{
OutCount=3
link(onEvent1,6077697:doClear,[(432,132)(432,104)(268,104)(268,76)])
link(onEvent2,3737629:doReset,[(521,139)(521,160)])
link(onEvent3,8143037:doEnum,[])
}
Add(HubEx,16580774,616,140)
{
link(onEvent,16464744:doStrCat,[])
}
Add(Hub,6631287,602,203)
{
link(onEvent1,12555137:doData,[])
link(onEvent2,16464744:doClear,[(630,216)(630,153)])
}
END_SDK
Add(Hub,14926577,595,336)
{
link(onEvent1,16163529:doMask,[])
link(onEvent2,16163529:doString,[(623,349)(623,335)])
}
Add(Button,8835312,189,385)
{
Left=715
Top=10
Width=190
Caption="Заменить строку в списке"
link(onClick,6430427:doEvent1,[])
}
Add(ListBox,5253835,329,196)
{
Left=15
Top=85
Width=1100
Height=495
Point(doSelect)
}
Add(Hub,12438171,133,224)
{
link(onEvent1,12012885:doExecute,[])
link(onEvent2,8109872:doEnum,[(157,237)(157,279)])
}
Add(Memory,15885503,490,287)
{
Point(Data)
link(onData,15945340:doReplace,[])
link(Data,8109872:Index,[(496,275)(432,275)(432,319)(356,319)])
}
Add(Hub,6430427,238,385)
{
link(onEvent1,15049622:doWrite,[])
link(onEvent2,210827:doWork2,[])
}
Add(DoData,4974169,273,392)
{
PColor(onEventData,11184640)
link(onEventData,5253835:doSelect,[(317,398)(317,244)])
link(Data,3298451:Var1,[(279,348)])
}
Add(GetDataEx,3298451,336,343)
{
Angle=1
link(Data,15885503:Value,[(496,348)])
}
Add(HubEx,210827,259,392)
{
link(onEvent,4974169:doData,[])
}
Add(Button,11217693,140,287)
{
Left=125
Top=10
Width=110
Caption="Сохранить в файл"
link(onClick,2875233:doData,[])
}
Add(Memory,9467347,210,224)
{
link(onData,5253835:doLoad,[])
}
Add(DoData,2875233,210,287)
{
link(onEventData,5253835:doSave,[(300,293)(300,237)])
link(Data,9467347:Value,[])
}
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 21
Рейтинг: 3
#15: 2013-02-26 14:09:13 ЛС | профиль | цитата
ser_davkin, количество пробелов важно.
------------ Дoбавленo в 14.09:
Леонид, Ваш код именно то что мне нужно, спасибо Вам огромное, а можно ли что бы приложение автоматически открывало заменяло и сохраняло файл. Данные для замены можно любые.
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)