Есть строка:
HG_ALERT1 hgrunt/alert1.wav
Необходимо удалить вспе после пробела, и оставить толкьо HG_ALERT1
Как это сделать?
Модератор: Модераторы
s_in='HG_ALERT1 hgrunt/alert1.wav';
s_out:=Copy(s_in,1,Pos(' ',s_in));
s_in:='HG_ALERT1 hgrunt/alert1.wav';
s_out:=Copy(s_in,9,Length(s_in));
s_in:='HG_ALERT1 hgrunt/alert1.wav';
s_out:=s_in;
Delete (s_out,10,Length(s_out));
s_in:='HG_ALERT1 hgrunt/alert1.wav';
s_out:=Copy(s_in,1,9);
function GetFirstWorldInString(StrIn: string): string;
var
ic, l: integer;
begin
l := length(StrIn);
if l < 1 then Result := ''
else for ic := 1 to l begin
if StrIn[ic] = #20 then break
else Result += StrIn[ic];
end;
end;
function GetFirstWorldInString(StrIn: string): string;
var
p, l: integer;
begin
l := length(StrIn);
if l < 1 then Result := ''
else begin
p := pos(#20, StrIn);
if p > 1 then Result := copy(StrIn, 1, pred(p))
else if p = 1 Result := ''
else Result := StrIn;
end;
end;
s:='HG_ALERT1 hgrunt/alert1.wav';
SScanf(s,'%s %s',[@s1,@s2]);
Function GetFirstWordInString(Const aString: String): String;
Var
aProcess: TProcess;
aStringList: TStringList;
Begin
aStringList := TStringList.Create;
aStringList.Text := aString;
aStringList.SaveToFile('1.txt');
aProcess := TProcess.Create(nil);
aProcess.CommandLine := 'cmd /C "FOR /F "tokens=1" %i IN (1.txt) DO echo %i"';
aProcess.Options := AProcess.Options + [poWaitOnExit, poUsePipes];
aProcess.Execute;
aStringList.LoadFromStream(aProcess.Output);
Result := aStringList[2];
aStringList.Free;
aProcess.Free;
End;
uses StrUtils;
...
s := 'HG_ALERT1 hgrunt/alert1.wav';
FirstWord := Copy2Symb(s, ' ');
function CopyL(const S: String; const Srch:String):String;
begin
Result:=Copy(s,1,Pos(Srch,S)-1);
end;
begin
s := 'HG_ALERT1 hgrunt/alert1.wav';
FirstWord := CopyL(s, ' ');
end;
function GetFirstWorldInString(StrIn: string): string;
var
ic, l: integer;
gtc: DWord;
begin
l := length(StrIn);
if l < 1 then Result := ''
else for ic := 1 to l begin
gtc := gettickcount;
if StrIn[ic] = #20 then break
else Result += StrIn[ic];
if gettickcount > (gtc + 60000) then begin
showmessage('Извините, НО! Ваш ПК слишком устарел для выполнения поставленной задачи!');
Result := '';
exit;
end;
end;
end;
uses StrUtils...
...
procedure TMainForm.Button1Click(Sender:TObject);
const intext = 'HG_ALERT1 hgrunt/alert1.wav';
function ReturnFirstWird (FirstWord: string; DoMessage: boolean = False): string;
function CharCount(InStr: string; TheChar: Char): integer;
var I: Integer;
begin
result:= 0; i:= 0;
if Length(InStr) = 0 then exit;
repeat
if (InStr[i] = TheChar) then inc(result);
inc(i);
until (i > Length(InStr));
end;
function CopyFN(Str: string; Simvol: Char; FromSimvolNomer: integer): string;
var StartPos, EndPos: integer;
i, j: Integer;
begin
Result := '';
if (pos(Simvol, Str) = 0) then exit;
StartPos:= 0; j:= 0;
Str:= trim(Str);
if not (Str[1] = Simvol) then Str:= Simvol + Str;
if not (Str[length(Str)] = Simvol) then Str:= Str + Simvol;
for i:= 1 to Length(trim(Str))-1 do begin
if (Str[i] = Simvol) then begin
Inc(j);
if (j = FromSimvolNomer) then begin
StartPos:= i;
break;
end;
end;
end;
if (StartPos = 0) then exit;
EndPos:= PosEx(Simvol, Str, StartPos+1);
if (EndPos > StartPos)
then result := copy(Str, StartPos+1, EndPos-StartPos-1)
else result := '';
end;
begin
if (CharCount(FirstWord, #32) = 0)
then begin
if DoMessage then showmessage('Менее двух слов');
Result:= '';
Exit;
end
else begin
Result:= CopyFN(FirstWord,#32,1);
end;
end;
begin
showmessage(ReturnFirstWird(intext));
end;
procedure ...
var s:string;
begi..
s:='HG_ALERT1'; // it's my way! =0
end;
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 59