Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.230.82] |
|
Страницы: (2) 1 [2] все ( Перейти к последнему сообщению ) |
Сообщ.
#16
,
|
|
|
Попробуй сделать новый проект и закоменть весь лишний код
|
Сообщ.
#17
,
|
|
|
Цитата ^D^ima @ Попробуй сделать новый проект и закоменть весь лишний код Сделал, но у меня показывает ошибку в System.SysUtils и там if FormatChar = 'S' then Overwrite := AddBuf(CurrentArg.VUnicodeString, Precision, [B]/// Вот это выделяет /////////[/B] Length(string(CurrentArg.VUnicodeString))) Ну ничего страшного, буду первым вариантом пользоваться. Я так понял это глюк самой System.SysUtils... ? |
Сообщ.
#18
,
|
|
|
Презсгрудись, сделай пустой проект и вставь бллк только ассигн и резет
|
Сообщ.
#19
,
|
|
|
Цитата ^D^ima @ Презсгрудись, сделай пустой проект и вставь бллк только ассигн и резет Сделал и тоже самое. Заметил когда вставляю вот этот кусок кода с заменой то ошибка есть: If Dictionary.ContainsKey(SLInS) then Dictionary[SLInS]:=Dictionary[SLInS]+1 Else Dictionary.Add(SLInS,1); End; DictionaryArray := Dictionary.ToArray; TArray.Sort<TPair<string, integer>>( DictionaryArray, TComparer<TPair<string, integer>>.Construct( function (const Left, Right: TPair<string, integer>): Integer begin Result := CompareStr(Left.Value.ToString, Right.Value.ToString); if Result = 0 then Result := CompareStr(Left.Key, Right.Key); end)); for I :=Length(DictionaryArray)-1 downto Length(DictionaryArray)-First do SLOut.add(Format('%s: %s',[DictionaryArray[I].Key,DictionaryArray[I].Value.ToString])); SLOut.SaveToFile('REZ.txt'); |
Сообщ.
#20
,
|
|
|
На 10 берлине работает
|
Сообщ.
#21
,
|
|
|
^D^ima, Благодарю за помощь. Все таки нужно переходить мне на берлин 10. Завтра поставлю и отпишусь.
Добавлено ^D^ima, А еще вопрос, если у меня проект на XE4 и я перейду на Embarcadero RAD Studio XE8 или 10. То код подойдет или придется переписывать?. Или особо изменений не много в новой версии? |
Сообщ.
#22
,
|
|
|
На виртуалке поставь, узнаешь
|
Сообщ.
#23
,
|
|
|
Цитата ^D^ima @ На виртуалке поставь, узнаешь Спасибо тебе Огромнейшее. Поставил Embarcadero RAD Studio 10.1 Berlin, сегодня. Запустил программу и все работает - как нужно. То есть ошибка была в моей версии RAD, точнее не поддерживала модули или криво работала. Еще раз спасибо. |
Сообщ.
#24
,
|
|
|
Все там работает. First:=1; не забывай. Если найденных слов меньше чем ты задал First, будет ошибка. Задавай правильно First, или вообще выпили, тогда будут все найденные слова по убыванию расставлены.
In 111:Test111 111:Test222 111:Test333 111:Test333 111:Test333 111:Test333 Out Test333: 4 Var I,First:Integer; SLInS,S:String; SLIn,SLOut:TStringList; FIn:TextFile; DictionaryArray: TArray<TPair<string, integer>>; DictionaryArrayItem: TPair<string, integer>; Dictionary : TDictionary<String,Integer>; begin First:=1; Dictionary:= TDictionary<String,Integer>.Create; SLOut:=TStringList.Create; SLIn:=TStringList.Create; AssignFile(FIn,'c:\123.txt'); reset(FIn); while not EOF(FIn) do begin readln(FIn,S); SLIn.Add(S); end; CloseFile(FIn); // SLIn.LoadFromFile('c:\123.txt'); SLIn.Delimiter:=' '; SLIn.DelimitedText:=SLIn.Text; For I:=0 to slIn.Count-1 do Begin SLInS:=slIn.Strings[I]; if Pos(':',SLInS)<>0 Then delete(SLInS,1,Pos(':',SLInS)); If Dictionary.ContainsKey(SLInS) then Dictionary[SLInS]:=Dictionary[SLInS]+1 Else Dictionary.Add(SLInS,1); End; DictionaryArray := Dictionary.ToArray; TArray.Sort<TPair<string, integer>>( DictionaryArray, TComparer<TPair<string, integer>>.Construct( function (const Left, Right: TPair<string, integer>): Integer begin Result := CompareStr(Left.Value.ToString, Right.Value.ToString); if Result = 0 then Result := CompareStr(Left.Key, Right.Key); end)); for I :=Length(DictionaryArray)-1 downto Length(DictionaryArray)-First do SLOut.add(Format('%s: %s',[DictionaryArray[I].Key,DictionaryArray[I].Value.ToString])); SLOut.SaveToFile('c:\321.txt'); Dictionary.Free; SLIn.Free; SLOut.Free; end; |
Сообщ.
#25
,
|
|
|
Цитата ^D^ima @ Все там работает. Только разобрался, потому и удалил предыдущее сообщение. Я действительно First неправильно указывал из за этого и ошибки были. Огромное СПАСИБО! |
Сообщ.
#26
,
|
|
|
А что вы все Pos(':',SLInS) в переменную не вносите, не жалко дважды носиться по строке? Или там столь мудрый компилятор, что один раз вызовет?
|