Форум: "Потрепаться";
Текущий архив: 2002.07.04;
Скачать: [xml.tar.bz2];
ВнизD5 -> D6, D6 -> D5 ??? Найти похожие ветки
← →
Tot (2002-06-04 13:16) [0]Привет всем! Ситуация у меня следующая был рабочий проект в D5, загрузил в D6, сделал кой-какие несущественные поправочки. Захотел снова вернуться к D5, и опсссс, облом. Ругается на несуществующие свойства и т.д. и т.п. Как вернуться к D5???
← →
NailS (2002-06-04 13:21) [1]Здесь уже приводился код конвертора dfm.
Поищи.
← →
MBo (2002-06-04 13:39) [2]http://delphibase.endimus.com/
← →
Tot (2002-06-04 14:03) [3]2 NailS
Нашёл конвертор D5->D4, а мне надо D6->D5
2 MBo
На http://delphibase.endimus.com/ ничего такого не нашёл.
Народ, измаялся уже, поможите пожалуйста!!!
← →
MBo (2002-06-04 14:07) [4]http://delphibase.endimus.com/?action=viewfunc&topic=strmath&index=3
← →
NailS (2002-06-04 14:45) [5]Alx2 © (28.05.02 12:14)
Вот так можно сконвертировать:
На форму кинь OpenDialog1 (удобнее будет, если включить у него в опциях multiselect) и Button1, на который повесь следующее:
Procedure TForm1.Button1Click(Sender: TObject);
Function isChanges(Const S: String; Var Res: String): Boolean;
Var len: Integer;
Function LexemSharp(Var K: Integer): Boolean;
Begin
Result := (K < len) And (S[K] = "#");
If Result Then
Begin
inc(K);
While (K <= len) And (S[K] In ["0".."9"]) Do inc(K);
End;
End;
Function LexemAp(Var K: Integer): Boolean;
Begin
Result := (K < len) And (S[K] = """");
If Result Then
Begin
inc(K);
While (K <= len) And (S[K] <> """") Do inc(K);
If K <= len
Then
inc(K);
End;
End;
Function Lexem(Var K: Integer; Var Str: String): Boolean;
Var
Start: Integer;
ValS : String;
Begin
Result := False;
Start := K;
If LexemSharp(K) Then
Begin
ValS := Copy(S, Start + 1, K - Start - 1);
Str := WideChar(StrToInt(ValS));
Result := True;
End
Else
If LexemAp(K) Then
Begin
Str := Copy(S, Start + 1, K - Start - 2);
Result := True;
End;
End;
Function Prepare(Var K: Integer): String;
Var Str: String;
WasLexem: Boolean;
Begin
Result := "";
WasLexem := False;
While Lexem(K, Str) Do
Begin
Result := Result + Str;
WasLexem := True;
End;
If Result <> "" Then
Result :="""" + Result + """" + Copy(S, K, Length(S))
Else
If Not WasLexem Then
Result := S
Else
Result := """""";
End;
Function Min(A, B: Integer): Integer;
Begin
If A = 0 Then Result := B
Else
If B = 0 Then Result := A
Else
If A > B Then Result := B
Else Result := A;
End;
Var
StartIdx: Integer;
Begin
Result := False;
StartIdx := Min(Pos("#", S), Pos("""", S));
If StartIdx > 0 Then
Begin
len := Length(S);
While (StartIdx <= len) And (Not (S[StartIdx] In ["#", """"])) Do inc(StartIdx);
If StartIdx < len Then
Begin
Res := Copy(S, 1, StartIdx - 1) + Prepare(StartIdx);
Result := True;
End;
End;
End;
Var
SList: TStringList;
K, L : Integer;
Res : String;
Begin
If OpenDialog1.Execute Then
Begin
For L := 0 To OpenDialog1.Files.Count - 1 Do
Begin
SList := TStringList.Create;
Try
SList.LOADFROMFILE(OpenDialog1.Files[L]);
For K := 0 To SList.Count - 1 Do
If isChanges(SList[K], Res) Then
SList[K] := Res;
Finally
SList.SaveToFile(OpenDialog1.Files[L]);
SList.Free;
End;
End;
End;
End;
← →
Tot (2002-06-04 16:26) [6]Огромное спасибо!!!
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2002.07.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c