unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
ListBox1: TListBox;
ListBox2: TListBox;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
t:textfile;
s,n:string;
i,p,r,h:integer;
m:array[1..10] of string;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
AssignFile(t,'d:\file.txt');
reset(t);
s:='';
for i:=1 to 10 do
begin
readln(t,m);
s:=s+m;
ListBox1.Items.Add(m);
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
ListBox1.Clear;
ListBox2.Clear;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
end;
end.
Другие языки программирования и технологии
В делфи нужно заменить группу пробелов одним. как считать сделал а изменить как незнаю
Считывание можно сделать проще
ListBox.Items.LoadFromFile('d:\file.txt');
А замену можно сделать так:
переносишь одну строку в другую посимвольно, если встретился пробел, заносишь его, а следующие пробелы пропускаешь.
Или по такому принципу
while pos(' ', st) > 0 do delete(st, pos(' ', st), 1);
ListBox.Items.LoadFromFile('d:\file.txt');
А замену можно сделать так:
переносишь одну строку в другую посимвольно, если встретился пробел, заносишь его, а следующие пробелы пропускаешь.
Или по такому принципу
while pos(' ', st) > 0 do delete(st, pos(' ', st), 1);
В рецептах выше есть многократный вызов Delete, что весьма неэффективно. Так быстрее:
procedure TForm1.Button2Click(Sender: TObject);
var
c, k, n: Integer;
s: String;
begin
for c := 0 to ListBox1.Items.Count - 1 do begin
s := ListBox1.Items[c];
n := 1;
for k := 2 to Length(s) do begin
if (s[k] <> ' ') or (s[n] <> ' ') then begin
inc(n);
s[n] := s[k];
end;
end;
Delete(s, n + 1, 255);
ListBox2.Items.Add(s);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
c, k, n: Integer;
s: String;
begin
for c := 0 to ListBox1.Items.Count - 1 do begin
s := ListBox1.Items[c];
n := 1;
for k := 2 to Length(s) do begin
if (s[k] <> ' ') or (s[n] <> ' ') then begin
inc(n);
s[n] := s[k];
end;
end;
Delete(s, n + 1, 255);
ListBox2.Items.Add(s);
end;
end;
А зачем их считать? Бери и удаляй!
// оставляет по одному пробелу между словами в строке
for i:= Length(S) downto 2 do if (S[ i ] = ' ') and (S[i - 1] = ' ') then Delete(S, i, 1);
Кстати, а что вы "считаете"? Строки что-ли? Тогда почему в цикле от одного и до десяти? Если нужно строки поместить в листбокс, то прислушайтесь к совету Striker. Гарантировано все строки будут там. И удалять можно так, как предложено.
while pos(' ', st) > 0 do delete(st, pos(' ', st), 1);
Только при первом обращении к Pos() надо искать ДВА пробела, а при удалении ОДИН. Упс.. . Кстати, майл прибивает повторяющиеся пробелы, так что думаю, что Striker не ошибся.
// оставляет по одному пробелу между словами в строке
for i:= Length(S) downto 2 do if (S[ i ] = ' ') and (S[i - 1] = ' ') then Delete(S, i, 1);
Кстати, а что вы "считаете"? Строки что-ли? Тогда почему в цикле от одного и до десяти? Если нужно строки поместить в листбокс, то прислушайтесь к совету Striker. Гарантировано все строки будут там. И удалять можно так, как предложено.
while pos(' ', st) > 0 do delete(st, pos(' ', st), 1);
Только при первом обращении к Pos() надо искать ДВА пробела, а при удалении ОДИН. Упс.. . Кстати, майл прибивает повторяющиеся пробелы, так что думаю, что Striker не ошибся.
Похожие вопросы
- Как заменить 2 пробела на 1? Си
- Как масштабировать графики в делфи, нужно, чтоб он постоянно строился, а менялся лишь масштаб по времени...
- какими командами нужно восползоваться в встроенном редакторе edit чтобы сделать вот это здание, помогите ожалуйста((
- Нужно заменить клавиши '.' на ',' на Delphi
- Что такое Srevice Pack 1 или 2 или 3? если знаешь, то как сделать чтобы изменить с 1 хотябы на 2-ой или 3-ий?
- как самому создать сайт с нуля? что нужно знать и как быстро это можно сделать?
- Как сделать защиту в программе написанной на делфи?
- Скажите сколько месяцев нужно изучать Делфи что бы написать программу вывода даты, дня недели и года в окно ?
- Нужно написать программу в делфи....не могу сама никак
- Не знаю как сделать денежный счетчик в играх на делфи