На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
Страницы: (2) 1 [2]  все  ( Перейти к последнему сообщению )  
> Исправить немного код / Delphi XE
    Попробуй сделать новый проект и закоменть весь лишний код
      Цитата ^D^ima @
      Попробуй сделать новый проект и закоменть весь лишний код

      Сделал, но у меня показывает ошибку в System.SysUtils и там
      ExpandedWrap disabled
        if FormatChar = 'S' then
                    Overwrite := AddBuf(CurrentArg.VUnicodeString, Precision, [B]/// Вот это выделяет /////////[/B]
                      Length(string(CurrentArg.VUnicodeString)))


      Ну ничего страшного, буду первым вариантом пользоваться. Я так понял это глюк самой System.SysUtils... ?
        Презсгрудись, сделай пустой проект и вставь бллк только ассигн и резет
          Цитата ^D^ima @
          Презсгрудись, сделай пустой проект и вставь бллк только ассигн и резет

          Сделал и тоже самое.

          Заметил когда вставляю вот этот кусок кода с заменой то ошибка есть:
          ExpandedWrap disabled
            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');
            На 10 берлине работает :-?
              ^D^ima, Благодарю за помощь. Все таки нужно переходить мне на берлин 10. Завтра поставлю и отпишусь.

              Добавлено
              ^D^ima, А еще вопрос, если у меня проект на XE4 и я перейду на Embarcadero RAD Studio XE8 или 10. То код подойдет или придется переписывать?. Или особо изменений не много в новой версии?
                На виртуалке поставь, узнаешь
                  Цитата ^D^ima @
                  На виртуалке поставь, узнаешь

                  Спасибо тебе Огромнейшее. Поставил Embarcadero RAD Studio 10.1 Berlin, сегодня. Запустил программу и все работает - как нужно. То есть ошибка была в моей версии RAD, точнее не поддерживала модули или криво работала. Еще раз спасибо. :thanks:
                  Сообщение отредактировано: Kirilis2018 -
                    Все там работает. First:=1; не забывай. Если найденных слов меньше чем ты задал First, будет ошибка. Задавай правильно First, или вообще выпили, тогда будут все найденные слова по убыванию расставлены.

                    In
                    ExpandedWrap disabled
                      111:Test111
                      111:Test222
                      111:Test333
                      111:Test333
                      111:Test333
                      111:Test333


                    Out
                    ExpandedWrap disabled
                      Test333: 4


                    ExpandedWrap disabled
                      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;
                      Цитата ^D^ima @
                      Все там работает.

                      Только разобрался, потому и удалил предыдущее сообщение. Я действительно First неправильно указывал из за этого и ошибки были. Огромное СПАСИБО! :good:
                      Сообщение отредактировано: Kirilis2018 -
                        А что вы все Pos(':',SLInS) в переменную не вносите, не жалко дважды носиться по строке? Или там столь мудрый компилятор, что один раз вызовет?
                        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                        0 пользователей:


                        Рейтинг@Mail.ru
                        [ Script execution time: 0,0327 ]   [ 16 queries used ]   [ Generated: 18.04.24, 20:08 GMT ]