Да блин. Я же говорю что ини фаил уже создан. Мне необходимо удалить из него 1 целый параметр и переименовать шапки остальных.
Var f : file of tinifile; begin assign(f,'C:\config2.ini'); reset(f); read(f,s); memo2.text:=s; end Ошибку о не правильном типе выдаёт.
type FootballTeam = (Spartak, Dinamo, CSKA, Torpedo, Lokomotiv); Этот код создаёт новый тип переменной FootballTeam которая может принимать только 5 значений.(он порядковый!) Тебе остаётся только написать код замены через assignfile,ну можно через TIni И как связать фаил с ini? Это же не текстовый фаил.
.... Только с кодом, т.к только начал учит Делфи.
Новая проблемка. xD Я записываю данные из Edit в ini фаил. Выглядит это вот так [Name0] Name= Published= Written by= Studio= Series= Score= [Name1] Name=fff Published= Written by= Studio= Series= Score= [Name2] Name=ffff Published= Written by= Studio= Series= Score= [Name3] Name= Published= Written by= Studio= Series= Score= Затем всё это вывожу в ListView и Memo. Так вот. Я удаляю 1 запись из ListView и необходимо поменять всю нумерацию в ini т.е Было [Name0][Name1][Name2][Name3] я удаляю строку из ListView и необходимо удалить параметры в ini и поменять всю нумерацию. Допустим я удаляю 3 элемент. [Name0][Name1][Name2][Name3] [Name3] и всё что дальше должны поменять номер на 1 меньше. Те есть [Name3]=[Name2],[Name4]=[Name3] и тд
Не прокатит т.к. в твой предыдущий код неверен,ибо каждый вложеный цикл будет выполняться указанное кол-во раз и так всегда. Должен быть другой способ. Ну предложи какой нибудь (писать 2000 раз одно и то же не катит :D )
2 вариант будет проще.(т.е exSheet.Cells[1180, 1].Value := ListView1.Items[0].SubItems[1]; и т.д. для всех полей =D) Их более 2000.... Может всё же подумаешь как циклом сделать? :D
Ну я не исключаю ошибку логики. В общем напиши как заполнить вот так exSheet.Cells[1180-1190, 1-4].Value := ListView1.Items[0-9].SubItems[1-4];
exSheet.Cells[j2+2, i2+1].Value := ListView1.Items[j3].SubItems[i2]; Чтото вот тут,не могу сказать ибо не знаю что происходит с i2 до этого участка. i2 это просто цифры от 1 до 4 for i2:=0 to 4 do Если я делаю вот так for i2:=0 to 4 do for j2:=0 to 9 do exSheet.Cells[j2+1, i2+1].Value := ListView1.Items[j2].SubItems[i2]; То всё идёт но мне нужно exSheet.Cells[j2+1, i2+1] и ListView1.Items[j2] сделать заполнение разными значениями..
Проблема я так понимаю заключается в том что я заюзал 3 цикла? оО
ListView.Items.Count Пасяб. for i2:=0 to 4 do for j2:=StrToInt(edit3.text) to StrToInt(edit4.text) do for j3:=0 to ListView1.Items.Count-1 do exSheet.Cells[j2+2, i2+1].Value := ListView1.Items[j3].SubItems[i2]; В чём ошибка? for j3:=0 to ListView1.Items.Count-1 do и ListView1.Items[j3].SubItems[i2] По идеи он должен записывать с 0 по последний заполненный столбец, но копирует поч-то только данные из последнего столбца =(
FOR xD я в курсе. Мне уточнения нужны были. Ну сделал уже. Вопрос теперь такой - Как можно узнать кол-во заполненных столбцов в ListView??????????????????????????
Почитал про Excel на Delphi и написал вот такой вот код. Всё работает. procedure TForm3.Button3Click(Sender: TObject); var exApp : Variant; exBook : Variant; exSheet : Variant; begin try exApp := CreateOleObject('Excel.Application'); exApp.Visible := True; exBook := exApp.WorkBooks.Add; exSheet := exBook.WorkSheets[1]; exSheet.Name := 'Данные. Лист 1'; //Формируем шапку таблицы. exSheet.Cells[1, 1].Value := 'Имя'; exSheet.Cells[1, 2].Value := 'Фамилия'; exSheet.Cells[1, 3].Value := 'Город'; exSheet.Cells[1, 4].Value := 'Телефон'; //Записываем данные из лист вьюв exSheet.Cells[2, 1].Value := ListView1.Items[0].SubItems[0]; end; exSheet := Unassigned; exBook := Unassigned; exApp := Unassigned; finally end; end; Только вот что делать если сюда exSheet.Cells[2, 1].Value := ListView1.Items[0].SubItems[0]; end; нужно добавить несколько данных - ListView1.Items[0-10].SubItems[0-10]
Дай пример какойнибудь базы экселевской хД а то нету на компе. Точнее всю базу (*.xls) Её то как раз и нужно создать и записать в неё данные из ЕListView в котором Столбцы - #, Имя, Фамилия, E-mail адрес, Адрес, Индекс, Город, Страна, Телефон. И в каждом сталбце записаны значения.
XLS это если я не ошибаюсь это Excel ? На делфи сорцах пример довольно сраный для любителей сделать всё самому,есть вариант куда легче. Он самый Excel (: Есть способ проще? Ещё лучше! =) Давай свой вариант :D
PHP-Интерпритатор,по сути дела особого отношения к программирования не имеет. Не просто так говорят *Программирование на пхп* Понаписали то...)) А в пхп это всего 1 строка. В делфи кста тоже. St:=RussianToUnicode(IdHTTP1.Get('http://xxxx.ru')); На пхп я б давно всё сделал =( Но есть необходимость именно в делфи это всё реализовать. Так теперь к делу. Не буду создавать новой темы а продолжу тут. Мне необходимо реализовать сохранение данных из TListView в XLS. В общем вот тут всё описано. Но без примера мне трудно понять. Если не сложно показать пример(код) кнопки при нажатии на которую будет происходить сохранение информации из TListView в XLS. Столбцы - #, Имя, Фамилия, E-mail адрес, Адрес, Индекс, Город, Страна, Телефон. Оть (:
GOOGLE SEARCHER LVL UP! Смог перекодировать страничку чтоб видеть русс текст! Уря товарисчи! Маза, сори за напрасный трах мозга, но всё равно спс за помощь(узнал как работают функции) + Вот собстно код который меня спас (: function RussianToUnicode(S: String): String; var Wrd:Word; pW,pR:PWord; len:Integer; begin pW:=@S[1]; len:=Length(S); SetLength(Result,len); pR:=@Result[1]; while Len<>0 do begin Wrd:=pW^; case Wrd of $C0..$DF,$E0..$FF:pR^:=Wrd+$0350; else pR^:=Wrd; end; inc(pW); inc(pR); dec(Len); end; end;
Вот что выдала программа при попытки парсинга. First chance exception at $7C812AFB. Exception class EAccessViolation with message 'Access violation at address 004B7021 in module 'Project3.exe'. Read of address 00000000'. Process Project3.exe (2680) Сама программа unit Parser; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdAntiFreezeBase, IdAntiFreeze, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, IdCookieManager, OleCtrls, SHDocVw, ActiveX; type TForm3 = class(TForm) IdHTTP1: TIdHTTP; IdAntiFreeze1: TIdAntiFreeze; Button1: TButton; Memo1: TMemo; IdHTTP2: TIdHTTP; Memo2: TMemo; IdCookieManager1: TIdCookieManager; WebBrowser1: TWebBrowser; Edit1: TEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form3: TForm3; ps: IPersistStreamInit; ss: TStringStream; sa: IStream; s: string; implementation {$R *.dfm} function GetHTML(WebBrowser: TWebBrowser; ACode: TStrings): Boolean; begin ps := WebBrowser.Document as IPersistStreamInit; s := ''; ss := TStringStream.Create(s); try sa := TStreamAdapter.Create(ss, soReference) as IStream; Result := Succeeded(ps.Save(sa, True)); if Result then ACode.Add(ss.Datastring); finally ss.Free; end; end; procedure TForm3.Button1Click(Sender: TObject); begin WebBrowser1.Navigate('http://'+Edit1.Text); gethtml(webbrowser1,memo1.lines); end; end.
gethtml(webbrowser1,memo1.text); что ругает ?текст ошибки полный давай. [DCC Error] Parser.pas(61): E2010 Incompatible types: 'TStrings' and 'TCaption'
Через веб броузер такое не прокатит.Используй idhttp.post. Это я знаю. Уже осуществил с сохранением кукисов и тд.. НО как их тогда связать?. Авторизуюсь через idhttp но браузеру как то по**ть на это.
Имена участников (разделяйте запятой).