![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
а что это за знак такой - ?
Нуб © (2007-03-15 12:28:00)я когда с excel копирую данные допустим в блокнот то данные ячеек разделены следующим символом он идет после - и перед ? когда я его копирую получается что то типа |- что это такое ?
Нуб (2007-03-15 18:18:00) [1]я добрый сегодня :) юзайте на здоровья
procedure TForm1.StringGrid1DblClick(Sender: TObject);
begin
if MessageDlg('Ñåé÷àñ áóäóò âíåñåíû äàííûå ñ ÿ÷ååê?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
kol4isel := 1;
step := 1;
memo1.Text := Clipboard.asText;
str := Clipboard.asText;
for i := 1 to Length(str) do
if str[i] = chr(9) then
Inc(kol4isel);
for i := 1 to Length(str) do begin // opredelyaem dlinuYa4eyki v simvolah
if str[i] = chr(9) then begin
dlina4isla := i-1 ; break;
end;
end;
StringGrid1.ColCount := kol4isel+1;
for i := 1 to kol4isel do begin
arrstr := copy(str,step,dlina4isla);
step := step + dlina4isla+1;
StringGrid1.Cells[i,1] := arrstr;
end;
end;
end;
Нуб (2007-03-15 17:51:00) [2]то есть chr(x) = ctrl и chr(x2) = v , чему равны x , x2 ?
Нуб (2007-03-15 17:50:00) [3]а чему равен chr(ctrl) i ctrl(v) ?
Нуб (2007-03-15 17:38:00) [4]вообщем все заработало :), а как сделать так чтобы при нажатие ctrl + v там чего-то срабатывало , допустим моя процедура? То есть я хочу чтобы я при нажатии на вышеуказанную комбинацию клавиш заганял данные в грид, заранее сенкс
Нуб (2007-03-15 17:24:00) [5]
> Сергей М. ©
да да спс про 13 я знал , а вот про таб нет )
Сергей М. (2007-03-15 17:07:00) [6]
> Нуб
А я тебе еще один тайна открою, в тон рыданиям Плохиша)
Строки там разделяются chr(13)
Хана)
Нуб (2007-03-15 16:50:00) [7]
> Плохиш ©
та лана че там это всего лишь оказался знак тубуляции :)
chr(9) хана
Плохиш (2007-03-15 16:47:00) [8]
> Нуб (15.03.07 16:32) [13]
Я тебе один тайна открою... в екселе разделителями является символ табуляции...
Плохиш (2007-03-15 16:43:00) [9]
> заметил что разделитель похожочень уже на chr(5)
Рыдал... Великие кодеры теперь опперируют понятиями "похож"... рыдал...
Нуб (2007-03-15 16:32:00) [10]
> Сергей М. ©
у меня в ячейках экселя числа типа 4.904 , 4,120 мне после того как я их вытащу, надо закинуть в стринггрид , а для того чтобы мне их закинуть в стриггрид , необходимо разбить значения которые я получил из Clipboard.AsText , а значения которые я получил будут в строке вида
4.904"разделитель"4.120"разделитель"n"разделитель" и так дальше. Когда ради интереса я взял скопировал строчку из экселя в блокнот, то заметил что разделитель похож очень уже на chr(5) - ' |' и считая что chr(5) - ' |' это и есть разделитель написал
str := Clipboard.asText;
for i := 1 to Length(str) do
if str[i] = Chr(5) then
Inc(kol4isel);
for i := 1 to Length(str) do begin // opredelyaem dlinuYa4eyki v simvolah
if str[i] = Chr(5) then begin
dlina4isla := i-1 ; break;
end;
end;
при выполнении разделителей в строке не находит , то есть разделитель это что-то другое а что фиг поймешь :(
Сергей М. (2007-03-15 15:45:00) [11]
> Нуб (15.03.07 15:03) [11]
Хрень какая-то ...
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(Clipboard.AsText);
end;
Что видишь на экране ?
Нуб (2007-03-15 15:03:00) [12]кто знает почему разделитель полей в екселе принимает разные значения ? один раз Ord('разделителя') у меня равен 52 , в другой раз 51 , в третий вообще 45 , и из-за этого у меня никак не получается разделить полученные данные с ячеек екселя , что мне делать ? подскажите плз
написал вот что-то такое в одном случае все ок в другом не пашет ничего
procedure TForm1.Button1Click(Sender: TObject);
var b : Boolean;
str : string;
i : integer;
c : PChar;
k : integer;
kol4isel : integer;
dlina4isla : integer;
begin
kol4isel := 1;
b := Clipboard.HasFormat(CF_TEXT);
if b then
Memo1.Text:=Clipboard.asText;
str := Clipboard.asText;
GetMem(c,Length(str)); // videlyaem pamyat'
StrCopy(c,PChar(str)); // v c zakinuli ya4eyki
for i:=1 to StrLen(c) do begin // opredelyaem koli4estvo ya4eek
if Ord(c[i]) = 52 then
kol4isel := kol4isel + 1;
end;
// strlcopy(buffer,c,4);
// buffer := PChar(Copy(c,4,3));
for i:=1 to StrLen(c) do begin // opredelyaem dlinuYa4eyki v simvolah
if Ord(c[i]) = 52 then begin
dlina4isla := i-1 ; break;
end;
end;
Label1.Caption := c;
Label2.Caption := IntToStr(Ord(c[18]));
Label3.Caption := IntToStr(kol4isel);
FreeMem(c);
end;
Сергей М. (2007-03-15 14:32:00) [13]
> Нуб (15.03.07 14:28) [9]
> как можно с PChar перевести в String ?
StrPas()
Нуб (2007-03-15 14:28:00) [14]
> Сергей М. ©
а как можно с PChar перевести в String ?
Сергей М. (2007-03-15 14:17:00) [15]
> Нуб (15.03.07 14:01) [7]
Тихо сам с собою ты ведешь беседу ?
Нуб (2007-03-15 14:01:00) [16]function Copy(S; Index, Count: Integer): string;
function Copy(S; Index, Count: Integer): array;
Description
S is an expression of a string or dynamic-array type. Index and Count are integer-type expressions. Copy returns a substring or sub array containing Count characters or elements starting at S[Index].
внатуре :)
Desdechado (2007-03-15 13:55:00) [17]Copy
как ни странно
Нуб (2007-03-15 13:48:00) [18]еще вот такой вопрос у меня есть строка из 10 символов
я хочу с этой строки копирнуть 6,7...10 какая это функсия делает по-моему strncat была такая , ну чего то ее нет уже ...
Johnmen (2007-03-15 13:18:00) [19]#10 переход на след.строку
Desdechado (2007-03-15 12:42:00) [20]124
?