RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-284460

Татьяна's questions

Martin Hope
Татьяна
Asked: 2022-09-01 21:27:48 +0000 UTC

复制从行首到最后一个空格的所有内容

  • 0

这是如何将所有内容复制到第一个空格

s:=copy(s,1,pos(' ',s)-1);

这是如何将所有内容复制到第二个空格

s:=copy(s,2,pos(' ',s)-1);

但是如何将所有内容从行首复制到最后一个空格?

也就是说,像这样的行:

str str str 123
str str 555
str 777

输出是:

str str str
str str
str
delphi
  • 1 个回答
  • 10 Views
Martin Hope
Татьяна
Asked: 2022-08-24 20:48:03 +0000 UTC

快速修剪到备忘录域的链接

  • 0

如何通过删除所有https 和 http来切断Memo1中域的链接。

https://site1.ru/threads/fdfddd2/
http://site2.ru/threads/fdfddd23434/
https://site3.ru/threads/fdfddd434/

输出会是什么

site1.ru
site2.ru
site3.ru

我是这样剪的,但是如果有1000-3000个链接就很长了!

// В начале удаляю все до //
    for i:= 0 to Memo1.Lines.Count - 1 do
  Memo1.Lines[i]:= Copy(Memo1.Lines[i], Pos('/', Memo1.Lines[i]) + 2, MaxInt);

// А после удаляю все после
  for i:= 0 to Memo1.Lines.Count - 1 do
  Memo1.Lines[i]:= Copy(Memo1.Lines[i], 1, Pos('/', Memo1.Lines[i])-1);
delphi
  • 1 个回答
  • 10 Views
Martin Hope
Татьяна
Asked: 2022-07-22 18:02:39 +0000 UTC

在Edit中输入值

  • 1

如何在编辑中显示特殊字符?可以在 Edit1.Text 中指定要删除的字符吗?

if s[i] in ['!', '+'] then
    Delete(s, i, 1)

如果我喜欢这样

if s[i] in CharinSet(edit1.Text) // то получаю ошибку
    Delete(s, i, 1)

在这种情况下怎么办?

delphi
  • 2 个回答
  • 10 Views
Martin Hope
Татьяна
Asked: 2022-07-04 15:04:17 +0000 UTC

保持重复行

  • 0

如何保存所有重复的行,准确保存而不是删除。

这就是删除重复项的方式,但我想知道如何将它们保存在单独的文件中?

var
    f1: TextFile;
    st: string;
    s: TStringList;

  begin
    AssignFile(f1, '1.txt');
    reset(f1);
    s := TStringList.Create;
    While not EOF(f1) do
    begin
      readln(f1, st);
      If s.IndexOf(st) < 0 then
        s.Add(st);
    end;

    s.SaveToFile('2.txt');
    s.Free;
    CloseFile(f1);
  end;

也就是说,有几行:

123
123
4444
55555
123

和基本输出:

123
123
123

附录:您可以这样做:

var
  f1: TextFile;
  st: string;
  s, s1: TStringList;
begin
  AssignFile(f1, '1.txt');
  reset(f1);
  s := TStringList.Create;
  s1 := TStringList.Create;
  while not EOF(f1) do
  begin
    readln(f1, st);
    if s.IndexOf(st) < 0 then
      s.Add(st)
    else
      s1.Add(st);
  end;
 
  s.SaveToFile('2.txt');
  s1.SaveToFile('double.txt');
  s.Free;
  s1.Free;
  CloseFile(f1);
end;

但事实证明,并非所有重复项都保存在double.txt文件中。

也就是说,有几行:

123
123
4444
55555
123

在文件 2.txt 中,结果是

123 - Вот тут запись а она должна быть в файле **double.txt**
4444
55555

在文件double.txt中,结果是

123
123

也就是说,一行123写错了地方。如何解决这个问题?

delphi
  • 1 个回答
  • 10 Views
Martin Hope
Татьяна
Asked: 2022-06-04 21:34:59 +0000 UTC

删除所有不以数字结尾的行

  • 1

请告诉我如何实施。从末尾没有数字的所有行中,这是必要的:

Primer123
Primer4454
Primer2
1Primer
2Primer
3Primer

输出结果:

Primer123
Primer4454
Primer2

也许你可以通过 Pos 或 PosEx 做一些事情。或者至少将想法推向哪个方向,在哪里阅读?

delphi
  • 1 个回答
  • 10 Views
Martin Hope
Татьяна
Asked: 2022-05-30 01:28:13 +0000 UTC

在文本文件中查找重复行

  • 0

有一个视图基础(有重复线的地方):

+Результат
+Ошибка
+Результат
+Результат
+Результат
+Ошибка
......

有必要计算位于文本文件中的所有重复行并在 Memo1 中显示报告。结果应该在 Memo1 中,如下所示:

+Результат - 4 раза
+Ошибка - 2 раза

也就是说,计算文本文件中所有相同的行并在 Memo1 中显示统计信息。

提供的代码运行迅速,但文件大小为 600 兆字节,它会显示内存不足消息。好吧,这是可以理解的,因为我们都加载到内存中。

procedure TForm1.Button1Click(Sender: TObject);
var
  TS: TStringList;
  s, OneWord: string;
  i, Cnt: integer;
begin
  TS := TStringList.Create;
  TS.Delimiter := '+';
  TS.LoadFromFile('baza.txt');
  s := TS.Text;
  TS.DelimitedText := s;

  if TS.Count = 0 then
  begin
    ShowMessage('Вообще ни одного слова нет!');
    Exit;
  end;

  TS.Sort;

  Memo1.Lines.Clear; // подготовим место для формирования отчёта

  // собственно подсчёт
  OneWord := TS.Strings[0];
  Cnt := 1;
  for i := 1 to TS.Count - 1 do
    if AnsiUpperCase(TS.Strings[i]) = AnsiUpperCase(OneWord) then
      inc(Cnt)
    else
    begin
      Memo1.Lines.Append(OneWord + '+' + InttoStr(Cnt));
      OneWord := TS.Strings[i];
      Cnt := 1;
    end;

  // для последнего слова в списке вывод результата
  Memo1.Lines.Append(OneWord + '+' + InttoStr(Cnt));

  FreeAndNil(TS); // освободим память
end;

我试图通过 AssignFile 发布代码 - 逐行阅读,但我在这里有错误。帮忙修?

var
  TS: TStringList;
  s,st: string;
  i, Cnt: integer;
  f1: TextFile;
begin
  Memo1.Lines.Clear; // подготовим место для формирования отчёта

  // Открываем диалог выбора файла
  if not OpenDialog1.Execute then
    exit
  else
    AssignFile(f1, OpenDialog1.FileName);
  reset(f1);

  TS := TStringList.Create;
  TS.Delimiter := '+';
  s := TS.Text;
  TS.DelimitedText := s;
  TS.Sort;

  if TS.Count = 0 then
  begin
    ShowMessage('Вообще ни одного слова нет!');
    exit;
  end;

  While not EOF(f1) do
  begin
    // Что бы программа не подвисала
    Application.ProcessMessages();
    readln(f1, st);
    TS.Add(st);

    // собственно подсчёт
    st := TS.Strings[0];
    Cnt := 1;
    for i := 1 to TS.Count - 1 do
      if AnsiUpperCase(TS.Strings[i]) = AnsiUpperCase(st) then
        inc(Cnt)
      else
      begin
        Memo1.Lines.Append(st + '-' + InttoStr(Cnt));
        st := TS.Strings[i];
        Cnt := 1;
      end;

    // для последнего слова в списке вывод результата
    Memo1.Lines.Append(st + '-' + InttoStr(Cnt));

    FreeAndNil(TS); // освободим память

  end;

  TS.Free;
  CloseFile(f1);

end;
delphi
  • 1 个回答
  • 10 Views
Martin Hope
Татьяна
Asked: 2022-05-28 21:13:38 +0000 UTC

如何将多条线路合二为一?

  • -1

文本文件包含如下行:

>>>
Stroka1
Stroka2
Stroka3
>>>
>>>
Stroka4
Stroka5
Stroka6
Stroka7
>>>

如何将符号>>>之间的线连接成一条线并在它们之间放置一个点。也就是说,结果应该是:

>>>
Stroka1.Stroka2.Stroka3
>>>
>>>
Stroka4.Stroka5.Stroka6.Stroka7
>>>

我阅读了有关该功能的信息(但据我了解,这是通过关键字进行的连接):

result := Concat('Stroka1','Stroka2','Stroka3');
delphi
  • 2 个回答
  • 10 Views
Martin Hope
Татьяна
Asked: 2022-05-27 22:40:53 +0000 UTC

删除备忘录中的换行符

  • 0

我将来自文本文件的字符串列表加载到 Memo1 中。

Memo1.Lines.LoadFromFile(ExtractFilePath(Application.ExeName)+ 'stroki.txt');

每行的长度最多为 2000 个字符。为什么备忘录会剪切每一行并进行转换,换行。如何完全避免这种情况,以便将每个排水管加载到备忘录中而无需传输。也就是说,已经加载了 10 行,而 memo1 应该有 10 行。

我的尝试:

1. Изменить свойство WordWrap на False.
2. Memo1.Text:=StringReplace(Memo1.Text,#10#13,' ',[rfreplaceall])
3. Изменяла свойства ScrollBars.

没有任何帮助。还是做不到?

delphi
  • 1 个回答
  • 10 Views
Martin Hope
Татьяна
Asked: 2022-05-23 02:22:49 +0000 UTC

仅删除单词

  • 0

实际上问题是:在文本文件中有这样的行:

Delphi1Prolanguage
Delphi2Prolang
Delphi3Proln
Delphi1
Delphi2
Delphi3

如何从此列表中仅删除单词,仅删除整个单词。例如,我需要找到所有有短语Delphi1、Delphi2、Delphi3 的行,但如果只遇到纯单词,则忽略它们。

结果应该是:

Delphi1Prolanguage
Delphi2Prolang
Delphi3Proln

我尝试使用 Pos 来解决这个问题。这是我试图做的。但是通过这种方法,这些和那些行都会进入结果。

代码说明:

Var
Frd1: TextFile // Текстовый файл
RS: String; // Строка
mas1 Array of String; // Массив
Fd: Boolean;

Ну и сам кусочек кода обработки....

   while not EoF(Frd1) do
        begin
          // Читаем строку из файла
          ReadLn(Frd1, Rs);
          // Ищем вхождение фильтрующей строки в массиве
          for i:=Low(mas1) to High(mas1) do
            begin
               Fd := (Pos(mas1[i], Rs) >  0);
              // Записываем строку в файл
              if Fd then
                WriteLn(Fz1, Rs);
            end;
        end;
delphi
  • 2 个回答
  • 10 Views
Martin Hope
Татьяна
Asked: 2022-02-17 20:14:17 +0000 UTC

将字符串修剪到最后一个字母

  • -1

如何删除文本文件中直到最后一个字母的行。

文本文件示例(所有字母均为英文):

1Zadacha123=gotovo555
2Zadachawer=net543
3adacha123=est32

在输出中我们得到:

555
543
32

如何删除某个字母很清楚,如下所示:

删除(s,1,pos('字母',s));

或者

s:=copy(s,1,pos('Буква',s)-1);

添加代码:

uses
  Winapi.Windows, Soap.EncdDecd, System.Hash, Winapi.Messages, System.SysUtils,
  System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, RegExpr, FileCtrl, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls,
  Vcl.Buttons, Vcl.StdCtrls,
  Vcl.ExtCtrls, System.IOUtils, System.DateUtils, StrUtils, System.Types,
  System.IniFiles, Vcl.ImgList,
  System.Math, Vcl.Samples.Spin, ShellApi, System.Generics.Collections,
  System.Generics.Defaults,
  System.ImageList;

procedure TForm1.Button2Click(Sender: TObject);
Var
  sl: TstringList;
  i: integer;
Begin
  sl := TstringList.Create();
  sl.loadFromFile('Загрузить.txt');
  for i := 0 to sl.Count - 1 do
  begin
    sl[i] := TRegExpr.replace(sl[i], '.*?(\d+)$', '$1');

  end;
  sl.SaveToFile('Сохранить.txt');
End;

它在线上抛出一个错误

sl[i] := TRegExpr.replace(sl[i], '.*?(\d+)$', '$1') 

编译时:不兼容的类型: “布尔”和“字符串”

delphi
  • 2 个回答
  • 10 Views
Martin Hope
Татьяна
Asked: 2022-02-16 23:04:10 +0000 UTC

将部分字符串与整个字符串连接起来

  • 0

有一个带有行的文本文件:

saa222+file1:12345
dss777+file2:1234
vcd555+file3:123

需要从字符串中提取+字符之前的所有数字并将它们连接到字符串S,结果是:

saa222+file1:12345222
dss777+file2:1234777
vcd555+file3:123555

我在做什么,但到最后却连不上,也就是某处出错,但是在哪呢?

const
  numb = ['0' .. '9'];
     // работаем по строкам
          while not Eof(fall) do
          begin
            // читаем строку
            ReadLn(fall, s1);
        // читаем строку
            ReadLn(fall, S);
         
        
            // Обрезаем строку S1 до символа +
            s1 := Copy(s1, 1, Pos('+', s1) - 1);
        
            // Удаляем все буквы из строки S1
            for b := length(s1) downto 1 do
              if not(s1[b] in numb) then
                delete(s1, b, 1);
        
        // Склеиваем строки S+S1
             S:= S+S1;
            writeln(f1, S);
          end;
delphi
  • 1 个回答
  • 10 Views
Martin Hope
Татьяна
Asked: 2022-02-12 04:58:22 +0000 UTC

在最后一个字母之后向字符串添加一个单词

  • 0

有这样的线条

dsdddfffdfd:dsds1980
dsddd1fff11dfd:ds1ds1987
ds111ddfffdfd:dsdw12s1981

您需要在每行的最后一个字母之后添加单词Test。也就是说,结果应该是:

dsdddfffdfd:dsds**Test**1980
dsddd1fff11dfd:ds1ds**Test**1987
ds111ddfffdfd:dsdw12s**Test**1981

在行尾添加可以理解为:S:= S + 'Test';

但是不知道如何解决这个问题。

delphi
  • 2 个回答
  • 10 Views
Martin Hope
Татьяна
Asked: 2022-01-12 22:58:38 +0000 UTC

将数字 0 添加到每个数字

  • -1

Edit1 有数字:

12345

如何为每个数字添加一个零。也就是说,输出应该是:

1020304050

好吧,这是我的例子,但在我看来,这并不完全正确:

Edit1.Text:=StringReplace(Edit1.Text,'0','00',[rfReplaceAll]);
Edit1.Text:=StringReplace(Edit1.Text,'1','10',[rfReplaceAll]);
Edit1.Text:=StringReplace(Edit1.Text,'2','20',[rfReplaceAll]);
Edit1.Text:=StringReplace(Edit1.Text,'3','30',[rfReplaceAll]);
Edit1.Text:=StringReplace(Edit1.Text,'4','40',[rfReplaceAll]);
Edit1.Text:=StringReplace(Edit1.Text,'5','50',[rfReplaceAll]);
Edit1.Text:=StringReplace(Edit1.Text,'6','60',[rfReplaceAll]);
Edit1.Text:=StringReplace(Edit1.Text,'7','70',[rfReplaceAll]);
Edit1.Text:=StringReplace(Edit1.Text,'8','80',[rfReplaceAll]);
Edit1.Text:=StringReplace(Edit1.Text,'9','90',[rfReplaceAll]);
delphi
  • 2 个回答
  • 10 Views
Martin Hope
Татьяна
Asked: 2021-12-22 07:25:51 +0000 UTC

按升序对行进行排序

  • 0

有这样的行Memo1.Text:

способ - 8 повторов
протащить - 2 повторов
год - 14 повторов
принять - 3 повторов
и - 15 повторов

如何按第一个单词,按单词长度对行进行排序 - 从最大到最小,即在输出处获得结果:

протащить - 2 повторов
принять - 3 повторов
способ - 8 повторов
год - 14 повторов
и - 15 повторов
delphi
  • 1 个回答
  • 10 Views
Martin Hope
Татьяна
Asked: 2021-12-20 22:05:48 +0000 UTC

在备忘录中撤消最近的操作

  • 0

我将文本从Memo2 ( Memo2 的第一行)复制到设置鼠标光标的Memo1 中。

Memo1.SetFocus;
Memo1.SetSelTextBuf(PWideChar(Memo2.Lines[0]));

有一个问题: 如何取消最后一个动作?也就是说,点击按钮后,最后一个动作应该被取消。

尝试通过(但这只是取消手动操作并且不起作用):

Memo1.Undo;
delphi
  • 1 个回答
  • 10 Views
Martin Hope
Татьяна
Asked: 2021-12-18 00:06:12 +0000 UTC

将文本分成段落

  • 0

Memo1 中有文本。文本打印在一行中。文本示例:

Все люди любят мечтать. Особенно в детстве. И это очень хорошо. История заветной детской мечты. ставшей явью. Далее в обзоре.

如何将文本分成每行三个句子并在它们之间放置一个段落?这样 Memo1.Text 中的输出将是结果:

Все люди любят мечтать. Особенно в детстве. И это очень хорошо.

История заветной детской мечты. ставшей явью. Далее в обзоре.

到目前为止,我已经想出了如何将它分成单独的句子。它会是这样的:

var i:integer;
    s:string;
begin
s:=Memo1.Text;
i:=2;
while i<length(s) do
if(s[i]=' ')and(s[i-1] in ['.'])then
 begin
  insert(#13#10,s,i+1);
  i:=i+1;
 end
else i:=i+1;
Memo1.Text:=s
end;
delphi
  • 1 个回答
  • 10 Views
Martin Hope
Татьяна
Asked: 2021-10-21 19:14:26 +0000 UTC

将文本从网站复制到备忘录

  • 0

文本文件 Text.txt 位于站点上,其中包含以下文本:

Год:2020
Число:19
Месяц:09 

我提出这样的要求:

procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.Add(IdHTTP1.Get('http://test.ru/text.txt'));
end;

问题是,在备忘录中,我将文本放在一行中:

Год:2020Число:19Месяц:09 

并且在备忘录中的列中应该有文本,就像在文本文件中一样。我究竟做错了什么?

delphi
  • 1 个回答
  • 10 Views
Martin Hope
Татьяна
Asked: 2020-08-15 03:27:29 +0000 UTC

进度条和备忘录

  • 0

备忘录分为三行:

11
22
33

通过单击按钮,我删除了备忘录的第一行:

Memo1.Lines.delete(0);

如何使ProgressBar在从Memo中删除的行中填充(即ProgressBar的第一行已被删除,第二,第三...)?

delphi
  • 1 个回答
  • 10 Views
Martin Hope
Татьяна
Asked: 2020-08-12 21:12:20 +0000 UTC

Indy 中的连接错误

  • 2

错误代码是这样的:

Error connecting with SSL.
error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure.

无论使用什么类型的 sslvSSLv2、sslvSSLv23、sslvSSLv3、sslvTLSv1,我仍然会出错!

我这样做:

Var
SSL: TIdSSLIOHandlerSocketOpenSSL;
HTTP: TIdHttp;
begin
  SSL:=TIdSSLIOHandlerSocketOpenSSL.Create(Application);
  SSL.ReadTimeOut:=10000;
  ///sslvSSLv2, sslvSSLv23, sslvSSLv3, sslvTLSv1
  SSL.SSLOptions.Method:=sslvSSLv23;
  SSL.SSLOptions.Mode:=sslmUnassigned;

  HTTP:=TidHTTP.Create(Application);
  HTTP.ReadTimeout:=10000;
  HTTP.IOHandler:=SSL;
  HTTP.AllowCookies:=true;
  HTTP.Request.UserAgent :='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.54 Safari/537.36 OPR/36.0.2130.21 (Edition beta)'; //'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36';

  try
    memo1.lines.text:=HTTP.Get('https://zachestnyibiznes.ru/');
  finally
    SSL.Free;
    HTTP.Free;
  end;
end;

使用相同的代码:例如,我得到页面代码https://www.e1.ru/没有任何问题。

在哪里挖掘,可能有什么问题?

**Версия Indy:** 10.6.2.5341
**Версия RAD:** RAD Studio 10.1 Berlin Version 24.0.25048.9432 
delphi
  • 1 个回答
  • 10 Views
Martin Hope
Татьяна
Asked: 2020-07-21 08:40:23 +0000 UTC

单击按钮更改编辑文本

  • 1

在表单上有一个按钮 Button1Click 和 Edit1.Text 以及一个文本文件1.txt,其中有几行: 例如:

1234567
98765432
3232323
434343434

需要在Edit中点击按钮时,出现第一行1234567 的值,按下按钮,第二行98765432的值也会出现,以此类推。但是什么是有序的。

delphi
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5