| 
| 
 | Вопрос # 2 320/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!не подскажете как найти все пробелы в строке? задание такое: есть Фамилия Имя Отчество, преобразовать в Фамилия И.О. 
|  |   Вопрос задала: Milady (статус: Посетитель)Вопрос отправлен: 20 января 2009, 11:28
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: min@y™ Вот такой вариант сойдёт?
 program p2320;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils,
  StrUtils;
 
const
  S = 'Martin Luther King';
 
var
  P1, P2: Integer;
  R: string;
 
begin
  P1:= PosEx(' ', S, 1);
  P2:= PosEx(' ', S, P1 + 1);
 
  R:= Copy(S, 1, P1) + S[P1 + 1] + '.' + S[P2 + 1] + '.';
  WriteLn(R);
 
  ReadLn;
end.Ахтунг! Проверки на корректность значений P1 и P2 тут нет, сам сделай.
 
|  | Ответ отправил: min@y™ (статус: Доктор наук)Время отправки: 20 января 2009, 11:58
 Оценка за ответ: 5
 |  
 Мини-форум вопросаВсего сообщений: 17; последнее сообщение — 20 января 2009, 14:19; участников в обсуждении: 3. 
|   | Вадим К (статус: Академик), 20 января 2009, 11:32 [#1]:есть такие функции pos('что ищем', 'где ищем') и posex('что ищем', 'где ищем', с_какой_позиции) Эти функции возвращают 0, если ничего не нашли, или позиции, с которой нашли. Дальше сами справитесь?
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Milady (статус: Посетитель), 20 января 2009, 11:48 [#2]:нет   // начальная строка Фамилия Имя Отчество
 s:=Edit1.Text;
 p:=length(Edit1.Text);
 k:=pos(' ',s);
 Delete (s,k+2,p-K+2);
 Label2.Caption:= s;
 
 // результат Фамилия И
 |  
|   | min@y™ (статус: Доктор наук), 20 января 2009, 12:49 [#4]:PosEx() находится в модуле StrUtils. Обрати внимание, что этот модуль в моём примере объявлен в uses. Неужели трудно нажать Ctrl + F1?
 
 
 Цитата: Unit
 
 StrUtils
 
 Category
 
 string handling routines
 
 Delphi syntax:
 
 function PosEx(const SubStr, S: string; Offset: Cardinal = 1): Integer;
 
 C++ syntax:
 
 extern PACKAGE int __fastcall PosEx(const AnsiString SubStr, const AnsiString S, unsigned Offset = 1);
 
 Description
 
 PosEx returns the index of SubStr in S, beginning the search at Offset. If Offset is 1 (default), PosEx is equivalent to Pos.
 
 PosEx returns 0 if SubStr is not found, if Offset is greater than the length of S, or if Offset is less than 1.
 
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Milady (статус: Посетитель), 20 января 2009, 13:08 [#5]:[Error] Unit1.pas(9): Declaration expected but identifier 'SysUtils' found; [Error] Unit1.pas(7): Declaration expected but identifier 'StrUtils' found
 
 
 возникает в период компиляции
 |  
|   | Вадим К (статус: Академик), 20 января 2009, 13:11 [#6]:код показывайте, телепатия плохо работает Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Milady (статус: Посетитель), 20 января 2009, 13:17 [#7]:unit Unit1; 
 interface
 
 uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;  SysUtils; StrUtils;
 
 
 type
 TForm1 = class(TForm)
 Label1: TLabel;
 Edit1: TEdit;
 Label4: TLabel;
 Label5: TLabel;
 Button1: TButton;
 Label2: TLabel;
 procedure Button1Click(Sender: TObject);
 private
 { Private declarations }
 public
 { Public declarations }
 end;
 
 var
 Form1: TForm1;
 
 
 implementation
 
 
 {$R *.dfm}
 
 procedure TForm1.Button1Click(Sender: TObject);
 var s,r:string;
 p1,p2:integer;
 begin
 S:=Edit1.Text;
 P1:= PosEx(' ', S, 1);
 P2:= PosEx(' ', S, P1 + 1);
 R:= Copy(S, 1, P1) + S[P1 + 1] + '.' + S[P2 + 1] + '.';
 Label2.caption:=r;
 end;
 
 end.
 
 
 + PosEx ругается
 |  
|   | min@y™ (статус: Доктор наук), 20 января 2009, 13:18 [#8]:Скопируй сюда первые 15-20 строк модуля Unit.pas. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Вадим К (статус: Академик), 20 января 2009, 13:25 [#9]:Dialogs, StdCtrls; SysUtils; StrUtils; Это что такое? какие точки с запятой? зачем дублировать? выглядеть должно где то так
 uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, StrUtils;
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Milady (статус: Посетитель), 20 января 2009, 13:27 [#10]:[Error] Unit1.pas(7): Declaration expected but identifier 'StrUtils' found |  
|   | Milady (статус: Посетитель), 20 января 2009, 13:29 [#11]:StrtUtilits прописывала руками для того чтобы была понятна функция PosEx, в итоге не то не другое не понятно...... |  
|   | Вадим К (статус: Академик), 20 января 2009, 13:33 [#12]:приводите ошибку - приводите код. А то я уже привык к тому, что покажешь, как надо написать, а человек всё равно напишет как сам хочет. Галочка "подтверждения прочтения" - вселенское зло. |  
|   | min@y™ (статус: Доктор наук), 20 января 2009, 13:34 [#13]: uses
  Windows,  // <--- Запятая
  Messages, // <--- Запятая
  SysUtils, // <--- Запятая
  Variants, // <--- Запятая (хотя этот модуль тебе тут не нужен)
  Classes,  // <--- Запятая
  Graphics, // <--- Запятая
  Controls, // <--- Запятая
  Forms,    // <--- Запятая
  Dialogs,  // <--- Запятая
  StdCtrls, // <--- Запятая
  StrUtils; // <--- Точка с запятой! Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | min@y™ (статус: Доктор наук), 20 января 2009, 13:35 [#14]:Где скачать телепатические способности и перепрошить мозг??? ДАЙТЕ ССЫЛКУ ПЛИЗЗЗ!!! Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Milady (статус: Посетитель), 20 января 2009, 13:41 [#15]:Прошу прощения что понимаю все ваши советы далеко не с первого раза, и говорю ОГРОМНОЕ СПАСИБО ЗА ПОМОЩЬ ВСЕМ! ПОМОЛО!!!
 |  
|   | Вадим К (статус: Академик), 20 января 2009, 13:56 [#16]:то min@y™ не советую это делать. а если прошивка палёная? А если это Hot FullFlash? и от какой-нибудь девочки? потом же в голове такие мысли будут лазить...
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | min@y™ (статус: Доктор наук), 20 января 2009, 14:19 [#17]:FullFlash не надо, достаточно патч. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |