Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.05.02;
Скачать: [xml.tar.bz2];

Вниз

StringGrid   Найти похожие ветки 

 
Aliev Adil   (2002-04-20 22:41) [0]

Как сохранить в файл StringGrid текстов


 
Song   (2002-04-21 09:41) [1]

Перебором, сохраняя каждую ячейку.


 
Anatoly Podgoretsky   (2002-04-21 11:36) [2]

Необязательнок, каждую, свойство rows имеет тип ТSrings


 
Song   (2002-04-21 12:15) [3]

2Anatoly Podgoretsky © (21.04.02 11:36)
Ага :) Сохрнаняя в файл каждый ряд, да? :)


 
Anatoly Podgoretsky   (2002-04-21 12:53) [4]

Да, не каждую ячейку, правда файлов будет много :-)


 
PaRL   (2002-04-21 13:49) [5]

Зачем много файлов то.

var F : TextFile;
S : String;
z, x, i, m, h : integer;
begin
AssignFile(f, "C:\file.dat");
Rewrite(f);
h := SG.Height;
Writeln(f, h);
i := Form1.SG.RowCount ;
Writeln(f, i);
m := Form1.SG.ColCount ;
Writeln(f, m);
for z := 0 to SG.RowCount-2 do
for x := 0 to SG.ColCount-1 do
begin
S := SG.Cells[x,z];
Writeln(F,S);
end;
CloseFile(F);
end;
end;


PS Вот когда я про это спрашивал, мне даже никто не намекнул :(


 
PaRL   (2002-04-21 13:52) [6]

В догонку. Загрузка ячеек:
AssignFile(F, "C:\file.dat");
Reset(F);
Readln(f, h);
SG.Height := h;
Readln(F, i);
Form1.SG.RowCount := i;
Readln(F, m);
Form1.SG.ColCount := m;
for z := 0 to SG.RowCount-2 do { Циклы в записи и в загрузке одинаковы.}
for x := 0 to SG.ColCount-1 do
begin
Readln(F,S);
SG.Cells[x,z] := S;
end;
CloseFile(F);


 
Song   (2002-04-21 13:57) [7]

2PaRL © (21.04.02 13:49)
ИМХО. записывать текстом - не рационально. А представьте себе большой грид, представляете какие будут файлы?
Мой вариант:

Procedure TForm2.SaveGrid(S:String; Strg:TStringGrid);
Var FileHandle,t,n,StringLen:Integer;
x:String[250];
Begin
With Strg Do
Begin
FileHandle:=FileCreate(S);
FileWrite(FileHandle,ColCount,SizeOf(ColCount)); //пишем количество столбцов
FileWrite(FileHandle,RowCount,SizeOf(RowCount)); //пишем количество рядов
For t:=1 to RowCount Do
For n:=0 to ColCount Do
Begin
StringLen:=Length(Cells[n,t])+1;
FileWrite(FileHandle,StringLen,SizeOf(StringLen));
x:=Cells[n,t];
FileWrite(FileHandle,X,StringLen);
End;
FileClose(FileHandle);
End;
End;

У меня тоже String, но файл сохраняемый такой процедурой будет занимать на порядок меньше места чем в Вашем варианте.


 
PaRL   (2002-04-21 14:00) [8]

Я не волшебник, я только учусь.

PS Спасибо.


 
Anatoly Podgoretsky   (2002-04-21 14:03) [9]

Интересно, с чего бы это, у него на ячейку перегрузка в два байта, а у тебя 4
Если уж писать, то Tab Delimited автоматом получается и количество строк и колонок
Не говорю уже про импорт/экспорт скажем в Excel


 
Song   (2002-04-21 14:11) [10]

Основная экономия не в перегрузке, а в записи фактической длины ячейки чем текстовой строки в целом.


 
Anatoly Podgoretsky   (2002-04-21 14:21) [11]

Так фактическая длина не требуется, она задается делимитерами, а текстовый формат имеет дополнительные преимущества. Но я все равно предподчел бы Tab Delimited, кроме этих преисуществ в нагрузку возможность импорта/экспорта.


 
PaRL   (2002-04-21 15:51) [12]


> Так фактическая длина не требуется, она задается делимитерами,
> а текстовый формат имеет дополнительные преимущества. Но
> я все равно предподчел бы Tab Delimited, кроме этих преисуществ
> в нагрузку возможность импорта/экспорта.

Можно пример?



 
Anatoly Podgoretsky   (2002-04-21 15:54) [13]

Так пример ты сам привел, а если ты про Tab Delimites то просто добавляются символы табуляции вместо CRLF



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

Форум: "Основная";
Текущий архив: 2002.05.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.004 c
1-2587
vcrits
2002-04-19 17:36
2002.05.02
Как можно сделать в Delphi 6 из ActiveX библиотеки


14-2658
Феликс
2002-03-26 19:17
2002.05.02
Teleport Pro умеет вытаскивать файлы с опр. расширением (из сети). Но как?


1-2582
Дмитрий_Ч
2002-04-19 16:55
2002.05.02
Что-то не получается.


3-2488
Yuraz
2002-04-11 11:50
2002.05.02
Вставляю в таблицу сразу очень много строк


1-2553
Starkom
2002-04-18 09:34
2002.05.02
вопрос про потоки и модальные формы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский