ADD: Regular expressions to multi-rename tool

This commit is contained in:
Alexander Koblov 2008-11-09 20:09:42 +00:00
commit 0faeddbfdd
14 changed files with 263 additions and 49 deletions

View file

@ -3,16 +3,14 @@ object frmMultiRename: TfrmMultiRename
Height = 400
Top = 157
Width = 700
HorzScrollBar.Page = 699
HorzScrollBar.Range = 603
VertScrollBar.Page = 399
VertScrollBar.Range = 345
ActiveControl = edName
Caption = 'MultiRename'
ClientHeight = 400
ClientWidth = 700
OnCreate = FormCreate
ParentFont = False
Position = poMainFormCenter
LCLVersion = '0.9.27'
object gbMaska: TGroupBox
AnchorSideLeft.Control = Owner
AnchorSideRight.Side = asrBottom
@ -28,42 +26,51 @@ object frmMultiRename: TfrmMultiRename
ParentCtl3D = False
TabOrder = 0
object lbName: TLabel
AnchorSideLeft.Control = gbMaska
AnchorSideTop.Control = gbMaska
Left = 6
Height = 19
Width = 69
Height = 14
Width = 47
BorderSpacing.Left = 6
Caption = 'File Name'
ParentColor = False
end
object lbExt: TLabel
AnchorSideLeft.Control = gbMaska
AnchorSideTop.Control = edName
AnchorSideTop.Side = asrBottom
Left = 6
Height = 19
Top = 51
Width = 67
Height = 14
Top = 46
Width = 48
BorderSpacing.Left = 6
BorderSpacing.Top = 6
Caption = 'Extension'
ParentColor = False
end
object edName: TEdit
AnchorSideLeft.Control = gbMaska
AnchorSideTop.Control = lbName
AnchorSideTop.Side = asrBottom
Left = 6
Height = 20
Top = 25
Top = 20
Width = 136
BorderSpacing.Left = 6
BorderSpacing.Top = 6
OnChange = cmbxFontChange
TabOrder = 0
end
object edExt: TEdit
Tag = 25
AnchorSideLeft.Control = gbMaska
AnchorSideTop.Control = lbExt
AnchorSideTop.Side = asrBottom
Left = 6
Height = 20
Top = 76
Top = 66
Width = 136
BorderSpacing.Left = 6
BorderSpacing.Top = 6
OnChange = cmbxFontChange
TabOrder = 2
@ -76,7 +83,7 @@ object frmMultiRename: TfrmMultiRename
AnchorSideBottom.Side = asrBottom
Left = 146
Height = 20
Top = 25
Top = 20
Width = 20
Anchors = [akTop, akLeft, akBottom]
BorderSpacing.Left = 4
@ -93,7 +100,7 @@ object frmMultiRename: TfrmMultiRename
AnchorSideBottom.Side = asrBottom
Left = 146
Height = 20
Top = 76
Top = 66
Width = 20
Anchors = [akTop, akLeft, akBottom]
BorderSpacing.Left = 4
@ -106,31 +113,38 @@ object frmMultiRename: TfrmMultiRename
object gbFindReplace: TGroupBox
AnchorSideLeft.Control = gbMaska
AnchorSideLeft.Side = asrBottom
AnchorSideBottom.Control = gbLog
AnchorSideBottom.Side = asrBottom
Left = 188
Height = 119
Height = 151
Top = 240
Width = 156
Anchors = [akLeft, akBottom]
BorderSpacing.Left = 6
Caption = 'Find && Replace'
ClientHeight = 101
ClientHeight = 133
ClientWidth = 152
ParentCtl3D = False
TabOrder = 1
object lbFind: TLabel
AnchorSideLeft.Control = gbFindReplace
AnchorSideTop.Control = gbFindReplace
Left = 6
Height = 19
Width = 42
Height = 14
Width = 33
BorderSpacing.Left = 6
Caption = 'Find...'
ParentColor = False
end
object lbReplace: TLabel
AnchorSideLeft.Control = gbFindReplace
AnchorSideTop.Control = edFind
AnchorSideTop.Side = asrBottom
Left = 6
Height = 19
Top = 51
Width = 67
Height = 14
Top = 46
Width = 51
BorderSpacing.Left = 6
BorderSpacing.Top = 6
Caption = 'Replace...'
ParentColor = False
@ -143,7 +157,7 @@ object frmMultiRename: TfrmMultiRename
AnchorSideRight.Side = asrBottom
Left = 4
Height = 20
Top = 25
Top = 20
Width = 144
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 4
@ -160,7 +174,7 @@ object frmMultiRename: TfrmMultiRename
AnchorSideRight.Side = asrBottom
Left = 4
Height = 20
Top = 76
Top = 66
Width = 144
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 4
@ -169,6 +183,35 @@ object frmMultiRename: TfrmMultiRename
OnChange = cmbxFontChange
TabOrder = 1
end
object cbRegExp: TCheckBox
AnchorSideLeft.Control = gbFindReplace
AnchorSideTop.Control = edReplace
AnchorSideTop.Side = asrBottom
Left = 4
Height = 19
Top = 90
Width = 123
BorderSpacing.Left = 4
BorderSpacing.Top = 4
Caption = '&Regular expressions'
OnChange = cbRegExpChange
TabOrder = 2
end
object cbUseSubs: TCheckBox
AnchorSideLeft.Control = gbFindReplace
AnchorSideTop.Control = cbRegExp
AnchorSideTop.Side = asrBottom
Left = 4
Height = 19
Top = 111
Width = 103
BorderSpacing.Left = 4
BorderSpacing.Top = 2
Caption = 'Use substitution'
OnChange = cmbxFontChange
Enabled = False
TabOrder = 3
end
end
object gbFontStyle: TGroupBox
AnchorSideBottom.Control = gbLog
@ -193,7 +236,6 @@ object frmMultiRename: TfrmMultiRename
Top = 6
Width = 145
Anchors = [akTop, akLeft, akRight]
AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending]
BorderSpacing.Left = 4
BorderSpacing.Top = 6
BorderSpacing.Right = 4
@ -205,12 +247,10 @@ object frmMultiRename: TfrmMultiRename
'lowercase'
'first char big'
)
MaxLength = 0
OnChange = cmbxFontChange
ParentCtl3D = False
Style = csDropDownList
TabOrder = 0
Text = 'no change'
end
end
object gbCounter: TGroupBox
@ -307,7 +347,6 @@ object frmMultiRename: TfrmMultiRename
Top = 32
Width = 50
Anchors = [akTop, akRight]
AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending]
BorderSpacing.Top = 6
BorderSpacing.Right = 6
ItemHeight = 13
@ -324,7 +363,6 @@ object frmMultiRename: TfrmMultiRename
'09'
'10'
)
MaxLength = 0
OnChange = cmbxFontChange
ParentCtl3D = False
Style = csDropDownList
@ -391,7 +429,7 @@ object frmMultiRename: TfrmMultiRename
Left = 4
Height = 19
Top = 32
Width = 44
Width = 43
AllowGrayed = True
BorderSpacing.Left = 4
BorderSpacing.Top = 6

View file

@ -7,8 +7,9 @@ TFRMMULTIRENAME.BTNEXTMENU.CAPTION=...
TFRMMULTIRENAME.GBFINDREPLACE.CAPTION=Find && Replace
TFRMMULTIRENAME.LBFIND.CAPTION=Find...
TFRMMULTIRENAME.LBREPLACE.CAPTION=Replace...
TFRMMULTIRENAME.CBREGEXP.CAPTION=&Regular expressions
TFRMMULTIRENAME.CBUSESUBS.CAPTION=Use substitution
TFRMMULTIRENAME.GBFONTSTYLE.CAPTION=File Name Style
TFRMMULTIRENAME.CMBXFONT.TEXT=no change
TFRMMULTIRENAME.GBCOUNTER.CAPTION=Counter
TFRMMULTIRENAME.LBSTNB.CAPTION=Start Number
TFRMMULTIRENAME.LBINTERVAL.CAPTION=Interval

View file

@ -1,29 +1,34 @@
{
Seksi Commander
----------------------------
Licence : GNU GPL v 2.0
Author : Pavel Letko (letcuv@centrum.cz)
Seksi Commander
----------------------------
Licence : GNU GPL v 2.0
Author : Pavel Letko (letcuv@centrum.cz)
Advanced multi rename tool
Advanced multi rename tool
contributors:
contributors:
Copyright (C) 2007-2008 Koblov Alexander (Alexx2000@mail.ru)
}
unit fMultiRename;
{$mode objfpc}{$H+}
interface
uses
LResources,
SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, Menus, Buttons;
StdCtrls, ComCtrls, Menus, Buttons, SynRegExpr;
type
{ TfrmMultiRename }
TfrmMultiRename = class(TForm)
cbRegExp: TCheckBox;
cbUseSubs: TCheckBox;
lsvwFile: TListView;
gbMaska: TGroupBox;
lbName: TLabel;
@ -73,6 +78,7 @@ type
miHour: TMenuItem;
miMinute: TMenuItem;
miSecond: TMenuItem;
procedure cbRegExpChange(Sender: TObject);
procedure cmbxFontChange(Sender: TObject);
procedure edPocChange(Sender: TObject);
procedure edIntervalChange(Sender: TObject);
@ -152,8 +158,9 @@ begin
end;
procedure TfrmMultiRename.FreshText;
var c:integer;
sTmpAll,sTmpName,sTmpExt:string;
var
c:integer;
sTmpAll,sTmpName,sTmpExt:string;
begin
for c:=0 to lsvwFile.Items.Count-1 do
begin
@ -163,7 +170,10 @@ begin
//join
sTmpAll:=sTmpName+'.'+sTmpExt;
//find and replace
sTmpAll:=StringReplace(sTmpAll,edFind.Text,edReplace.Text,[rfReplaceAll,rfIgnoreCase]);
if cbRegExp.Checked then
sTmpAll:= ReplaceRegExpr(edFind.Text, sTmpAll, edReplace.Text, cbUseSubs.Checked)
else
sTmpAll:=StringReplace(sTmpAll,edFind.Text,edReplace.Text,[rfReplaceAll,rfIgnoreCase]);
//file name style
case cmbxFont.ItemIndex of
1: sTmpAll:=UpperCase(sTmpAll);
@ -184,8 +194,22 @@ begin
FreshText;
end;
procedure TfrmMultiRename.cbRegExpChange(Sender: TObject);
begin
if cbRegExp.Checked then
cbUseSubs.Checked:= Boolean(cbUseSubs.Tag)
else
begin
cbUseSubs.Tag:= Integer(cbUseSubs.Checked);
cbUseSubs.Checked:= False;
end;
cbUseSubs.Enabled:= cbRegExp.Checked;
FreshText;
end;
procedure TfrmMultiRename.edPocChange(Sender: TObject);
var c:integer;
var
c:integer;
begin
c:=StrToIntDef(edPoc.Text,maxint);
if c=MaxInt then
@ -198,7 +222,8 @@ begin
end;
procedure TfrmMultiRename.edIntervalChange(Sender: TObject);
var c:integer;
var
c:integer;
begin
c:=StrToIntDef(edInterval.Text,maxint);
if c=MaxInt then
@ -244,9 +269,9 @@ begin
end;
function TfrmMultiRename.sReplace(sMask:string;count:integer):string;
var sNew,sTmp,sOrigName,sOrigExt:string;
i:integer;
var
sNew,sTmp,sOrigName,sOrigExt:string;
i:integer;
begin
sOrigName:=ChangeFileExt(lsvwFile.Items[count].Caption,'');
sOrigExt:=ExtractFileExt(lsvwFile.Items[count].Caption);
@ -358,7 +383,8 @@ begin
end;
procedure TfrmMultiRename.NameXXClick(Sender: TObject);
var c,i:integer;
var
c,i:integer;
begin
i:=0;
for c:=0 to lsvwFile.Items.Count-1 do
@ -387,8 +413,9 @@ begin
end;
procedure TfrmMultiRename.ExtensionXXClick(Sender: TObject);
var c,i:integer;
sTmp:string;
var
c,i:integer;
sTmp:string;
begin
i:=0;
for c:=0 to lsvwFile.Items.Count-1 do

View file

@ -664,7 +664,6 @@ begin
end;
end;
initialization
{$I fviewer.lrs}
end.

View file

@ -1306,6 +1306,14 @@ msgstr "Само на файлове от вид:"
msgid "Move %s:"
msgstr "Преместване на %s:"
#: TFRMMULTIRENAME.BTNCANCEL.CAPTION
msgid "Cancel"
msgstr ""
#: TFRMMULTIRENAME.BTNOK.CAPTION
msgid "OK"
msgstr ""
#: TFRMMULTIRENAME.BTNRESTORE.CAPTION
msgid "Restore All"
msgstr "Връщане на всички"
@ -1319,6 +1327,14 @@ msgctxt "TFRMMULTIRENAME.CBLOG.CAPTION"
msgid "Log"
msgstr "Дневник"
#: TFRMMULTIRENAME.CBREGEXP.CAPTION
msgid "&Regular expressions"
msgstr ""
#: TFRMMULTIRENAME.CBUSESUBS.CAPTION
msgid "Use substitution"
msgstr ""
#: TFRMMULTIRENAME.CMBXWIDTH.TEXT
msgid "01"
msgstr "01"

View file

@ -1306,6 +1306,14 @@ msgstr "只有类型:"
msgid "Move %s:"
msgstr "移动 %s:"
#: TFRMMULTIRENAME.BTNCANCEL.CAPTION
msgid "Cancel"
msgstr ""
#: TFRMMULTIRENAME.BTNOK.CAPTION
msgid "OK"
msgstr ""
#: TFRMMULTIRENAME.BTNRESTORE.CAPTION
msgid "Restore All"
msgstr "全部回滚"
@ -1319,6 +1327,14 @@ msgctxt "TFRMMULTIRENAME.CBLOG.CAPTION"
msgid "Log"
msgstr "日志"
#: TFRMMULTIRENAME.CBREGEXP.CAPTION
msgid "&Regular expressions"
msgstr ""
#: TFRMMULTIRENAME.CBUSESUBS.CAPTION
msgid "Use substitution"
msgstr ""
#: TFRMMULTIRENAME.CMBXWIDTH.TEXT
msgid "01"
msgstr "01"

View file

@ -1308,6 +1308,14 @@ msgstr "Pouze typy"
msgid "Move %s:"
msgstr "Přesun %s:"
#: TFRMMULTIRENAME.BTNCANCEL.CAPTION
msgid "Cancel"
msgstr ""
#: TFRMMULTIRENAME.BTNOK.CAPTION
msgid "OK"
msgstr ""
#: TFRMMULTIRENAME.BTNRESTORE.CAPTION
msgid "Restore All"
msgstr "Obnovit vše"
@ -1321,6 +1329,14 @@ msgctxt "TFRMMULTIRENAME.CBLOG.CAPTION"
msgid "Log"
msgstr "Log"
#: TFRMMULTIRENAME.CBREGEXP.CAPTION
msgid "&Regular expressions"
msgstr ""
#: TFRMMULTIRENAME.CBUSESUBS.CAPTION
msgid "Use substitution"
msgstr ""
#: TFRMMULTIRENAME.CMBXWIDTH.TEXT
msgid "01"
msgstr "01"

View file

@ -1306,6 +1306,14 @@ msgstr "Nur diese Typen"
msgid "Move %s:"
msgstr "Verschiebe %s"
#: TFRMMULTIRENAME.BTNCANCEL.CAPTION
msgid "Cancel"
msgstr ""
#: TFRMMULTIRENAME.BTNOK.CAPTION
msgid "OK"
msgstr ""
#: TFRMMULTIRENAME.BTNRESTORE.CAPTION
msgid "Restore All"
msgstr "Alle wieder herstellen"
@ -1319,6 +1327,14 @@ msgctxt "TFRMMULTIRENAME.CBLOG.CAPTION"
msgid "Log"
msgstr "Log"
#: TFRMMULTIRENAME.CBREGEXP.CAPTION
msgid "&Regular expressions"
msgstr ""
#: TFRMMULTIRENAME.CBUSESUBS.CAPTION
msgid "Use substitution"
msgstr ""
#: TFRMMULTIRENAME.CMBXWIDTH.TEXT
msgid "01"
msgstr "01"

View file

@ -1306,6 +1306,14 @@ msgstr "Sólo de tipo:"
msgid "Move %s:"
msgstr "Mover %s:"
#: TFRMMULTIRENAME.BTNCANCEL.CAPTION
msgid "Cancel"
msgstr ""
#: TFRMMULTIRENAME.BTNOK.CAPTION
msgid "OK"
msgstr ""
#: TFRMMULTIRENAME.BTNRESTORE.CAPTION
msgid "Restore All"
msgstr "Restaurar todo"
@ -1319,6 +1327,14 @@ msgctxt "TFRMMULTIRENAME.CBLOG.CAPTION"
msgid "Log"
msgstr "Registro"
#: TFRMMULTIRENAME.CBREGEXP.CAPTION
msgid "&Regular expressions"
msgstr ""
#: TFRMMULTIRENAME.CBUSESUBS.CAPTION
msgid "Use substitution"
msgstr ""
#: TFRMMULTIRENAME.CMBXWIDTH.TEXT
msgid "01"
msgstr "01"

View file

@ -1306,6 +1306,14 @@ msgstr "Alleen type:"
msgid "Move %s:"
msgstr "Verplaats %s:"
#: TFRMMULTIRENAME.BTNCANCEL.CAPTION
msgid "Cancel"
msgstr ""
#: TFRMMULTIRENAME.BTNOK.CAPTION
msgid "OK"
msgstr ""
#: TFRMMULTIRENAME.BTNRESTORE.CAPTION
msgid "Restore All"
msgstr "Restore Alles"
@ -1319,6 +1327,14 @@ msgctxt "TFRMMULTIRENAME.CBLOG.CAPTION"
msgid "Log"
msgstr "Log"
#: TFRMMULTIRENAME.CBREGEXP.CAPTION
msgid "&Regular expressions"
msgstr ""
#: TFRMMULTIRENAME.CBUSESUBS.CAPTION
msgid "Use substitution"
msgstr ""
#: TFRMMULTIRENAME.CMBXWIDTH.TEXT
msgid "01"
msgstr "01"

View file

@ -1306,6 +1306,16 @@ msgstr ""
msgid "Move %s:"
msgstr ""
#: TFRMMULTIRENAME.BTNCANCEL.CAPTION
msgctxt "TFRMMULTIRENAME.BTNCANCEL.CAPTION"
msgid "Cancel"
msgstr ""
#: TFRMMULTIRENAME.BTNOK.CAPTION
msgctxt "TFRMMULTIRENAME.BTNOK.CAPTION"
msgid "OK"
msgstr ""
#: TFRMMULTIRENAME.BTNRESTORE.CAPTION
msgid "Restore All"
msgstr ""
@ -1319,6 +1329,15 @@ msgctxt "TFRMMULTIRENAME.CBLOG.CAPTION"
msgid "Log"
msgstr ""
#: TFRMMULTIRENAME.CBREGEXP.CAPTION
msgctxt "TFRMMULTIRENAME.CBREGEXP.CAPTION"
msgid "&Regular expressions"
msgstr ""
#: TFRMMULTIRENAME.CBUSESUBS.CAPTION
msgid "Use substitution"
msgstr ""
#: TFRMMULTIRENAME.CMBXWIDTH.TEXT
msgid "01"
msgstr ""
@ -2504,6 +2523,7 @@ msgid "Option"
msgstr ""
#: ulng.rseditsearchregexp
msgctxt "ulng.rseditsearchregexp"
msgid "&Regular expressions"
msgstr ""

View file

@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Double Commander 0.3.5 alpha\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2008-11-09 20:03+0300\n"
"PO-Revision-Date: 2008-11-09 22:57+0300\n"
"Last-Translator: Alexander Koblov <Alexx2000@mail.ru>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@ -1305,6 +1305,14 @@ msgstr "Только типа:"
msgid "Move %s:"
msgstr "Переместить %s:"
#: TFRMMULTIRENAME.BTNCANCEL.CAPTION
msgid "Cancel"
msgstr "Отмена"
#: TFRMMULTIRENAME.BTNOK.CAPTION
msgid "OK"
msgstr ""
#: TFRMMULTIRENAME.BTNRESTORE.CAPTION
msgid "Restore All"
msgstr "Восстановить всё"
@ -1318,6 +1326,14 @@ msgctxt "TFRMMULTIRENAME.CBLOG.CAPTION"
msgid "Log"
msgstr "Протокол"
#: TFRMMULTIRENAME.CBREGEXP.CAPTION
msgid "&Regular expressions"
msgstr "&Регулярные выражения"
#: TFRMMULTIRENAME.CBUSESUBS.CAPTION
msgid "Use substitution"
msgstr "Подстановка"
#: TFRMMULTIRENAME.CMBXWIDTH.TEXT
msgid "01"
msgstr ""

View file

@ -1305,6 +1305,14 @@ msgstr "Тільки типу:"
msgid "Move %s:"
msgstr "Переместити %s:"
#: TFRMMULTIRENAME.BTNCANCEL.CAPTION
msgid "Cancel"
msgstr ""
#: TFRMMULTIRENAME.BTNOK.CAPTION
msgid "OK"
msgstr ""
#: TFRMMULTIRENAME.BTNRESTORE.CAPTION
msgid "Restore All"
msgstr "Відновити все"
@ -1318,6 +1326,14 @@ msgctxt "TFRMMULTIRENAME.CBLOG.CAPTION"
msgid "Log"
msgstr "Протокол"
#: TFRMMULTIRENAME.CBREGEXP.CAPTION
msgid "&Regular expressions"
msgstr ""
#: TFRMMULTIRENAME.CBUSESUBS.CAPTION
msgid "Use substitution"
msgstr ""
#: TFRMMULTIRENAME.CMBXWIDTH.TEXT
msgid "01"
msgstr ""

View file

@ -7,6 +7,7 @@
showing editor or viewer by configuration dialog
contributors:
Copyright (C) 2006-2008 Koblov Alexander (Alexx2000@mail.ru)
}