Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.01;
Скачать: CL | DM;

Вниз

слияние двух переменных типа string   Найти похожие ветки 

 
Dub   (2004-07-21 07:13) [0]

вопрос следующий:
Есть две переменных типа String. При этом заранее известны их длины: Например 4 символа и 10 символов соответственно.
________Можно ли их слить так, чтобы вторая переменная слилась (или всавилась в первую переменную) начиная со строго фиксированного места, например с 17.
Пример: slovo:="мармелад"; stroka:=" апельсин";
Обычно: slovo+stroka, то получится мармелад апельсин.
Но необходимо получить:  slovo+stroka   мармелад             апельсин


 
Думкин ©   (2004-07-21 07:23) [1]

Вопрос уточни?
Если строка 4 символа, то как в нее можно вставить начиная с 17-го?
Или она уже не 4 символа?


 
©   (2004-07-21 07:24) [2]

Ну и добавь пробелллов между ними


 
Dub   (2004-07-21 07:43) [3]

пробелы вставит можно. А если изменить исходные данные: длины переменных варьируются в каких-то пределах: 1-я: 7 символов (её длина может быть не более 7 символов), а 2-я: 10.НЕо вторая строка должна всё же влиться в первую начиная с 17 символа. Это можно ?


 
©   (2004-07-21 07:44) [4]

Для образца
procedure TForm1.Button1Click(Sender: TObject);
var
S,S1,S2:String;
I,J:SmallInt;
begin
S:=Edit1.text;
S1:=Edit2.text;
I:= SpinEdit1.Value-Length(S); //позиция(17)
If I>0 Then
for J:=1 To I Do
S2:=S2+" ";
Edit3.Text:=S+S2+S1;
end;


 
Думкин ©   (2004-07-21 08:02) [5]

> [3] Dub   (21.07.04 07:43)

Сам то пониамешь что пишешь, или как? Как влиться?
Я так мыслю:
1. Есть 2 строки.
2. Надо получить их объединение и записать результат в 1-ю, но при этом в новой строке положение второй должно быть фиксированным некоторым n.

i := length(s1);
if length(s1)<n then begin
SetLength(s1,n);
FillChar(s1[i+1],n-i,#32)
end;
Insert(s2,s1,n)


 
Dub   (2004-07-21 08:06) [6]

Большое Всем спасибо: Вы поняли меня ПРЕКРАСНО - ещё раз СПАСИБО!!!


 
Anatoly Podgoretsky ©   (2004-07-21 08:59) [7]

Dub   (21.07.04 07:43) [3]
Нельзя!
1-я: 7 символов (её длина может быть не более 7 символов), поэтому невозможно вставить начиная с 17 символа.


 
SergP ©   (2004-07-21 09:43) [8]


> Dub   (21.07.04 07:43) [3]
> пробелы вставит можно. А если изменить исходные данные:
> длины переменных варьируются в каких-то пределах: 1-я: 7
> символов (её длина может быть не более 7 символов), а 2-я:
> 10.НЕо вторая строка должна всё же влиться в первую начиная
> с 17 символа. Это можно ?


Дык посчитай количество пробелов которое нужно добавить в середину, типа как 17-length(slovo) а потом берешь slovo, добавляешь необходимое кол-во пробелов, затем добавляешь stroka

:


 
FOX ©   (2004-07-21 11:12) [9]

А что, старый добрый format уже не в моде :-)

format( "%-17.17s%s", [slovo, stroka])



Страницы: 1 вся ветка

Текущий архив: 2004.08.01;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.049 c
1-1089804769
CTAPbIi
2004-07-14 15:32
2004.08.01
Закрытие модальной формы.


1-1090149370
Wahnsinng
2004-07-18 15:16
2004.08.01
byte


1-1089966353
VAmpior$
2004-07-16 12:25
2004.08.01
Как засунуть. AVI в .exe или dll и потом его возпроизвести.


14-1089830378
GeX
2004-07-14 22:39
2004.08.01
DLL with ASM + Delphi


1-1089931646
Ardagast
2004-07-16 02:47
2004.08.01
function some(some: array of array of integer): integer;