Форум: "Начинающим";
Текущий архив: 2007.04.08;
Скачать: [xml.tar.bz2];
Вниза что это за знак такой - ? Найти похожие ветки
← →
Нуб (2007-03-15 12:28) [0]я когда с excel копирую данные допустим в блокнот то данные ячеек разделены следующим символом он идет после - и перед ? когда я его копирую получается что то типа | - что это такое ?
← →
Desdechado © (2007-03-15 12:32) [1]разделитель полей
← →
Нуб (2007-03-15 12:38) [2]а chr ili ord я не помню у него какой ?
← →
Desdechado © (2007-03-15 12:42) [3]124
?
← →
Johnmen © (2007-03-15 13:18) [4]#10 переход на след.строку
← →
Нуб (2007-03-15 13:48) [5]еще вот такой вопрос у меня есть строка из 10 символов
я хочу с этой строки копирнуть 6,7...10 какая это функсия делает по-моему strncat была такая , ну чего то ее нет уже ...
← →
Desdechado © (2007-03-15 13:55) [6]Copy
как ни странно
← →
Нуб (2007-03-15 14:01) [7]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].
внатуре :)
← →
Сергей М. © (2007-03-15 14:17) [8]
> Нуб (15.03.07 14:01) [7]
Тихо сам с собою ты ведешь беседу ?
← →
Нуб (2007-03-15 14:28) [9]
> Сергей М. ©
а как можно с PChar перевести в String ?
← →
Сергей М. © (2007-03-15 14:32) [10]
> Нуб (15.03.07 14:28) [9]
> как можно с PChar перевести в String ?
StrPas()
← →
Нуб (2007-03-15 15:03) [11]кто знает почему разделитель полей в екселе принимает разные значения ? один раз 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 15:45) [12]
> Нуб (15.03.07 15:03) [11]
Хрень какая-то ...
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(Clipboard.AsText);
end;
Что видишь на экране ?
← →
Нуб (2007-03-15 16:32) [13]
> Сергей М. ©
у меня в ячейках экселя числа типа 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 16:43) [14]
> заметил что разделитель похож очень уже на chr(5)
Рыдал... Великие кодеры теперь опперируют понятиями "похож"... рыдал...
← →
Плохиш © (2007-03-15 16:47) [15]
> Нуб (15.03.07 16:32) [13]
Я тебе один тайна открою... в екселе разделителями является символ табуляции...
← →
Нуб (2007-03-15 16:50) [16]
> Плохиш ©
та лана че там это всего лишь оказался знак тубуляции :)
chr(9) хана
← →
Сергей М. © (2007-03-15 17:07) [17]
> Нуб
А я тебе еще один тайна открою, в тон рыданиям Плохиша)
Строки там разделяются chr(13)
Хана)
← →
Нуб (2007-03-15 17:24) [18]
> Сергей М. ©
да да спс про 13 я знал , а вот про таб нет )
← →
Нуб (2007-03-15 17:38) [19]вообщем все заработало :), а как сделать так чтобы при нажатие ctrl + v там чего-то срабатывало , допустим моя процедура? То есть я хочу чтобы я при нажатии на вышеуказанную комбинацию клавиш заганял данные в грид, заранее сенкс
← →
Нуб (2007-03-15 17:50) [20]а чему равен chr(ctrl) i ctrl(v) ?
← →
Нуб (2007-03-15 17:51) [21]то есть chr(x) = ctrl и chr(x2) = v , чему равны x , x2 ?
← →
Нуб (2007-03-15 18:18) [22]я добрый сегодня :) юзайте на здоровья
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;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.04.08;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.039 c