Poseidon, давайте объясню всё по порядку. Функция выдернута из приложения, в котором все компоненты кроме формы не являются стандартными VCL. Ни самих компонентов ни их исходных кодов у меня нет. Поэтому на некоторые ваши уточнения не могу ответить. Понимаю, чем больше Вам знать, тем быстрее мне получить ответ.
| Цитата | | переменные (Ch_BraceSqrBegin, S_IsLetter, S_UpperChar) |
. Ch_BraceSqrBegin - упоминается ещё и в процедуре ниже (прилагаю код).
| Код | procedure ScanType_0_0; Var InX: Integer; FList: TStringList; Begin // Scan Images Files SImages := SImages + S; FList := TStringList.Create; S_CutLabel(SImages, FList, 1); For InX := 0 to FList.Count - 1 do Begin If FileExists(F_NowPath + 'images\' + S_Cut(FList[InX], 1, Ch_Spec)) then Begin G_ResizePicture(F_NowPath + 'images\' + S_Cut(FList[InX], 1, Ch_Spec), F_NowPath + 'images\' + Ch_BottomLine + S_Cut(FList[InX], 1, Ch_Spec), 0, 100, True); ReadyList.TableCellLoadPicture(FTable, F_NowPath + 'images\' + Ch_BottomLine + S_Cut(FList[InX], 1, Ch_Spec), FTable.RowCount - 1, InX + 3, 1); ReadyList.TableCellText(FTable, FTable.RowCount - 1, InX + 3, S_Cut(FList[InX], 2, Ch_Spec), -1, 1, False); ReadyList.TableCellText(FTable, FTable.RowCount - 1, 8, Ch_BraceSqrBegin + FList[InX] + Ch_BraceSqrEnd, -1, -1, False); End; SImages := S_ReplaceText(SImages, [Ch_BraceSqrBegin + FList[InX] + Ch_BraceSqrEnd], [Ch_Free]); End; FList.Free; LeftX := FRect.Right + 1; TopX := AnalystList.GetOffsBeforeItem(FRect.Right + 1); End;
|
S_IsLetter - упоминается только в обработчике снизу.
| Код | procedure TForm1.AnalysesFile(AFileName: String); Var InX, InY, StartX, StartY: Integer; Found: Boolean; Begin If AnalysText.LoadRTFEx(AFileName) then Begin StartX := 0; StartY := 0; Found := False; For InX := 0 to AnalysText.ItemCount - 1 do If Found then Break Else For InY := 0 to AnalysText.GetOffsAfterItem(InX) - 1 do Begin AnalysText.SetSelectionBounds(InX, InY, InX, InY + 1); If (AnalysText.GetSelTextA <> Ch_Free) and S_IsLetter(AnalysText.GetSelTextA[1]) then Begin StartX := InX; StartY := InY; Found := True; Break; End; End; AnalysText.SetSelectionBounds(0, 0, StartX, StartY); AnalysText.DeleteSelection; AnalysText.Reformat; AnalysText.SaveRTF(AFileName, False); End; End;
|
S_UpperChar - упоминается только в функции | Код | function GetIsTitle(AValue: String): Boolean; |
.
| Цитата | | Дай пример что передается в AValue. |
- прилагаю код
| Код | function TextToAlias(AValue: String): String; Var S1, S2: String; Begin S1 := Trim(S_Cut(AValue, 1, Ch_Path)); S2 := Trim(S_Cut(AValue, 2, Ch_Path)); Result := S_CryllToLatin(S1, Ch_Minus); If S2 <> Ch_Free then Result := Result + Ch_Path + S_ReplaceText(S_CryllToLatin(S2, Ch_Minus), [Ch_Minus], [Ch_Free]); Result := S_CharCase(Result, cc_Lower); End;
function FormatFullText(AValue: String): String; Var FindPos, EndPos: Integer; FTag: String; Begin FindPos := 1; Result := Trim(S_ReplaceText(HTML_DelTags(AValue, ['font']), [' align=justify', '<div', '/div>'], ['', '<p', '/p>'])); Repeat FindPos := S_PosText('<IMG', Result, FindPos); If FindPos > 0 then Begin EndPos := S_PosText(Ch_TagEnd, Result, FindPos + 4); FTag := S_CopyIndex(Result, FindPos + 1, EndPos - 1); FTag := 'img valign=middle src="' + HTML_GetImageSrc(FTag) + '"'; Result := S_DelIndex(Result, FindPos + 1, EndPos - 1); Insert(FTag, Result, FindPos + 1); FindPos := FindPos + Length(FTag) + 2; End; Until FindPos = 0; //Result := HTML_ClearFreeTags(Result); End;
|
| Цитата | | Подозреваю что там HTML |
- подозрения оправдались. HTML действительно присутствует.
Хотя бы можно просто проверить является ли следующее слово прописным. Если да, то нужно взять все прописные слова как один элемент. |