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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.004 c
1-2592
большой НовиЧОК
2002-04-19 19:10
2002.05.02
ПЛИИИИИИИИИИЗ!!!! :)


14-2681
Malder
2002-03-25 13:03
2002.05.02
Книга Архангельский А.Я.


14-2685
Tsatur Soft
2002-03-25 19:38
2002.05.02
Компаньоны


1-2561
som
2002-04-18 15:02
2002.05.02
как совместить TEdit вместе с TCombobox, може компонента есть


6-2643
SerfX
2002-02-16 14:46
2002.05.02
Какими ф-ми в clx библиотеке можно обратиться к канальному уровню?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский