|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Удалить строку из файла
Доброго времени суток. Пишу для себя небольшой чекер. Суть его работы: из файла akks.txt прога берет строку с логином и паролем, отправляет запрос на сервер - если пароль верный, то сохраняет в файл good.txt, иначе - bad.txt. Никак не могу сделать так, чтобы после проверки очередной строки программа удаляла ее, т.е чтобы файл source очищался в процессе работы. (на случай лагов с интернетом - чтобы заново не запускать)
Код:
begin post:=tstringlist.Create; reset(f1); while not EOF(f1) do begin form1.edit2.text:=inttostr(i); form1.edit3.Text:=inttostr(k); readln(f1,s); login:=copy(s,1,pos(';',s)-1); pass:=copy(s,pos(';',s)+1,length(s)-length(login)+1); post.add('username='+login); post.add('password='+pass); d:=form1.IdHTTP1.post('http://сайт', post); b:=pos('<title>',d); c:=pos('</title>',d); g:=copy(d,b+7,c-b-7); if g='условие проверки' then begin append(f2); writeln(f2,login+';'+pass); i:=i+1; close(f2); end else begin append(f3); writeln(f3,login+';'+pass); k:=k+1; close(f3); end; with tstringlist.create do begin loadfromfile('temp_source.txt'); delete(0); savetofile('temp_source.txt'); free end; end; close(f1); end; Получилось только так - через дополнительный файл. Подскажите плиз, как обойтись без него? |
#2
|
||||
|
||||
А не проще воспользоваться Ini-файлом...
Код:
procedure TForm1.Button1Click(Sender: TObject); var Ini: TIniFile; begin Ini := TIniFile.Create('C:\MyIni.ini'); Ini.DeleteKey('Login','Log1'); Ini.DeleteKey('Password','Pass1'); end; Код:
[Login] Log1=Login_1 Log2=Login_2 [Password] Pass1=Password_1 Pass2=Password_2 Код:
[Login] Log2=Login_2 [Password] Pass2=Password_2 Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. |
#3
|
|||
|
|||
Аккаунты сожержатся в файле в формате логин;пароль. Так что не вижу, чтобы было проще)
|
#4
|
||||
|
||||
Неужели так сложно пользоваться гуглом?
Код:
procedure DeleteLineFromFile(FileName:string;LineNumber:integer); var F:TStringList; begin F:=TStringList.Create; F.LoadFromFile(FileName); F.Delete(LineNumber); F.SaveToFile(FileName); F.Free; end; Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. |
#5
|
|||
|
|||
Если посмотреть в мой код, то там именно так и сделано. Просто если включить этот код с основным файлом source, то программа работает неверно (не работает цикл, не удаляет строчки)
|