Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.07.2017, 06:01   #1
HellMercenariess
Форумчанин
 
Аватар для HellMercenariess
 
Регистрация: 27.07.2009
Сообщений: 547
Вопрос Геоинфа как считывать

Цитата:
461695 Stantsiya Krasnopartyzans’ka Stantsiya Krasnopartyzans'ka Krasnopartizans'ka,Krasnopartyzans' ka,Krasnopartyzans’ka,Stancija Krasnopartizans'ka,Stantsiya Krasnopartizanskaya,Stantsiya Krasnopartyzans'ka,Stantsiya Krasnopartyzans’ka,Tashly-Dair,Краснопартизанська,Станція Краснопартизанська 45.40145 34.21635 S RSTN UA 11 0 59 Europe/Simferopol 2015-09-06
461697 Malyy Kuyal’nik Malyy Kuyal'nik Malyy Kuyal'nik,Malyy Kuyal’nik,Sredniy Kuyalnik 46.87082 30.45676 H STM UA 00 0 0 Europe/Simferopol 2012-01-17
461727 Olenevka Olenevka Karadzhi,Olenevka,Qaragy,Qarağy,Кар аджи́,Оленевка 45.38333 32.53333 P PPLA3 UA 11 710690 11153142 1441 5 -3 Europe/Simferopol 2017-03-29
461734 Ozero Alibey Ozero Alibey Lacul Alibei,Lake Alibei,Ozero Alibej,Ozero Alibey,Solenoye Ozero Alibey,Озеро Алібей 45.79739 30.00826 H LK UA 17 0 0 Europe/Simferopol 2015-02-05
468196 Katerynivka Katerynivka Katerinivka,Katerinovka,Katerynivka ,Yekaterinoslavskiy,Катеринівка 47.69011 38.75174 P PPL UA 05 0 20 Europe/Kiev 2014-08-05
477085 Vanyushkyne Vanyushkyne Vanjushkine,Vanyushkin,Vanyushkyne, Ванюшкине 47.25389 38.26988 P PPL UA 05 0 60 Europe/Kiev 2014-08-05
480071 Tuzla Tuzla Tuzla,Tuzla Insel,Tuzlyns'ka Kosa,Tuzlyns’ka Kosa,Тузла 45.26378 36.55402 T BAR UA 11 0 -1 Europe/Simferopol 2016-08-16
485524 Svistuny Svistuny 47.72639 38.40694 P PPL UA 05 0 98 Europe/Kiev 2016-01-07
486824 Sudost’ Sudost' Sudost',Sudost’ 52.31667 33.4 H STM UA UA 00 0 123 Europe/Kiev 2014-03-05
487076 Stublo Stublo Stubla,Stublo,Стубло 51.83617 26.15505 H STM UA 19 0 138 Europe/Kiev 2012-01-17
487307 Stratyva Stratyva Strativa,Stratshchva,Stratyva 52.3 32.43333 H STM UA UA 00 0 139 Europe/Kiev 2014-03-05
487462 Hora Stih Hora Stih Gora Stig,Gora Stog,Gora Stug,Hora Stih,Munte Stog,Stoch,Stog,Stogu,Stoh,Гора Стіг 47.96882 24.5624 T MT UA 25 0 1612 Europe/Uzhgorod 2012-06-05
488987 Starik Starik Starik 51.27645 30.58054 H CHN UA 00 0 98 Europe/Kiev 2012-01-17
490588 Sopych Sopych Sopich,Sopych,Sopych',Сопич,Сопычь 51.8503 34.36082 P PPL UA 21 0 185 Europe/Kiev 2016-09-08
494448 Shilova Balka Shilova Balka 46.81667 33.31667 P PPL UA 08 0 35 Europe/Kiev 2016-01-07
496232 Seym Seym Seim,Seym 51.46024 32.56457 H STM UA UA 00 0 119 Europe/Kiev 2017-01-01
498959 Samiylove Samiylove Samijlove,Samiylove,Samoylov,Samoyl ovo,Самійлове 47.25492 38.24353 P PPL UA 05 0 76 Europe/Kiev 2014-08-05
499959 Liman Rybosol Liman Rybosol Liman Ribosol,Liman Rybosol 46.6 31.7 H INLT UA UA 00 0 0 Europe/Simferopol 2012-01-17
501993 Revna Revna Revna 52.08333 32.21667 H STM UA UA 00 0 121 Europe/Kiev 2014-03-05
504385 Psel Psel Ps'ol,Psel,Psël,Ps’ol,Псел 49.01667 33.53333 H STM UA 00 0 62 Europe/Zaporozhye 2016-05-07
505257 Urzuf Urzuf Primorskoye,Urzuf,Urzufskiye,Zeleno ye,Урзуф 46.91562 37.09961 P PPL UA 05 2904 8 Europe/Kiev 2014-09-30
505426 Dnieper Lowland Dnieper Lowland Dnepr Lowland,Dneprovskaya Nizmennost',Dneprovskaya Nizmennost’,Dnieper Lowland,Pridneprovskaya Nizmennost',Pridneprovskaya Nizmennost’,Prydniprovs'ka Nyzovyna,Prydniprovs’ka Nyzovyna,Prydnyaprowskaya Nizina,Upper Dnieper Plain 50 32 T PLN UA 00 0 125 Europe/Kiev 2012-01-17
505441 Black Sea Lowland Black Sea Lowland Black Sea Coastal Plain,Black Sea Lowland,Lower Dnieper Plain,Prichernomorskaya Nizmennost',Prichernomorskaya Nizmennost’,Prychornomors'ka Nyzovyna,Prychornomors’ka Nyzovyna 47 33 T PLN UA 00 0 56 Europe/Zaporozhye 2012-01-17
509954 Petrovskiy Petrovskiy 47.85 35.45 P PPL UA 26 0 105 Europe/Zaporozhye 1999-10-05
514365 Oskil Oskil Oskil,Oskol 49.11145 37.40229 H STM UA 00 0 66 Europe/Kiev 2014-06-04
517270 Novozuyevka Novozuyevka Novozuevka,Novozuivka,Novozuyevka,Н овозуевка,Новозуївка 45.2387 34.15456 P PPL UA 11 704383 11152908 501 102 101 Europe/Simferopol 2016-07-21
517704 Novo-Voznesenovka Novo-Voznesenovka Novo-Voznesenovka,Novo-Voznesenskoye,Novoye Voznesenskoye 48.0575 39.83111 P PPL UA 14 0 288 Europe/Zaporozhye 2016-01-07
519450 Berdyans’ke Berdyans'ke Bedyanskoye,Berdjans'ke,Berdyans'ke ,Berdyans’ke,Myasokombinat,Novaya Ukrainka,Sovkhoz Myasokombinat,Бердянське 46.96829 37.008 P PPL UA 26 0 47 Europe/Zaporozhye 2014-09-30
522115 Mykyts’ke Mykyts'ke Mikits'ke,Mykyts'ke,Mykyts’ke,Nikit skiy,Nikitskoye,Микитське 52.03985 34.09198 P PPL UA 21 0 183 Europe/Kiev 2012-02-28
522527 Neskuchne Neskuchne Neskuchnaya,Neskuchne,Neskuchnoye,Н ескучне 50.20745 36.57144 P PPL UA 07 0 133 Europe/Kiev 2013-11-07
523713 Nadezhda Nadezhda Nadezhda,Sholtak,Надежда,Шолта́к 45.20757 35.09924 P PPL UA 11 693058 11153123 466 52 50 Europe/Simferopol 2016-08-15
532114 Makiyivka Makiyivka Makeyevka,Makiivka,Makiyivka,Макіїв ка 51.23529 34.59246 P PPL UA 21 0 155 Europe/Kiev 2012-11-08
534422 Loknya Loknya Loknya 50.95 34.35 H STM UA UA 00 0 165 Europe/Kiev 2014-03-05
538992 Kurakhivka Kurakhivka Kurakhivka,Kurakhov,Kurakhova,Kurak hovka,Kurakovka,Кураховка,Курахівка 48.03069 37.37281 P PPL UA 05 0 199 Europe/Kiev 2014-06-27
539934 Kuchurhan Kuchurhan Cuciurgan,Kuchurgan,Kuchurhan,Кучур ган 46.72077 29.9672 H STM UA 00 0 4
Только мне одному кажется что здесь хаотично насыпаны записи?
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.
HellMercenariess вне форума Ответить с цитированием
Старый 30.07.2017, 08:06   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,538
По умолчанию

Цитата:
Сообщение от HellMercenariess Посмотреть сообщение
Только мне одному кажется что здесь хаотично насыпаны записи?
Это так кажется, потому что в вашей цитате табуляция не отображается.
Там же расписана структура этих записей - ссыла
А считывать, отлавливая символы табуляции #09
type_Oleg вне форума Ответить с цитированием
Старый 30.07.2017, 08:43   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,538
По умолчанию

Я как то делал такое. Но я считывал только название g_nam, тип (он потом в скобках будет у названия), страну сс, долготу lat, широту lon.
Код:
procedure StrToNameLLC(s:string;var g_nam,cc:string;var lat,lon:Double);
var i,n,k:Integer;
   t:string;
begin
 n:=Length(s);
 if n=0 then Exit;
 t:='';
 k:=0;
 with Form1 do for i:=1 to n do
  begin
   if s[i]<>#09
    then t:=t+s[i]
    else
     begin
      Inc(k);
      case k of
      3:g_nam:=Trim(t);
      5:lat:=StrToFloatDef(t,0);
      6:lon:=StrToFloatDef(t,0);
      7:g_nam:=g_nam+'('+t+')';
      9:cc:=Trim(t);
      end;
      t:='';
     end;
  end;
end;
Вот - для проверки:
Код:
procedure TForm1.Button2Click(Sender: TObject);
var s,g_nam,cc:string;
   lat,lon:Double;
   f01: TextFile;
   i:Integer;
begin
 AssignFile(f01,'D:\****');  // имя распакованного текстового файла
 Reset(f01);
 for i:=1 to 20 do   // например первые 20 строк
  begin
   ReadLn(f01,s);
   StrToNameLLC(s,g_nam,cc,lat,lon);
   Memo1.Lines.Add(g_nam);
   Memo2.Lines.Add(cc);
   Memo3.Lines.Add(FloatToStr(lat));
   Memo4.Lines.Add(FloatToStr(lon));
  end;
 CloseFile(f01);
end;
type_Oleg вне форума Ответить с цитированием
Старый 30.07.2017, 09:31   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

А stringlist для чего? Быстрей навряд ли, но симпатичней точно
Код:
  xList1:=TStringList.Create;
  xList1.LoadFromFile('e:\Геоинфа.txt');
  xList2:=TStringList.Create;
  xList2.Delimiter:=#09;
  for i:=0 to xList1.Count-1 do begin
    xList2.DelimitedText:=xList1.Strings[i];
    StringGrid1.Rows[i].Assign(xList2);
  end;
  xList1.Free;
  xList2.Free;
Изображения
Тип файла: jpg Безымянный.jpg (79.4 Кб, 144 просмотров)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.08.2017, 18:07   #5
HellMercenariess
Форумчанин
 
Аватар для HellMercenariess
 
Регистрация: 27.07.2009
Сообщений: 547
По умолчанию

Цитата:
Сообщение от type_Oleg Посмотреть сообщение
ь, отлавливая символы
Код:
      5:lat:=StrToFloatDef(t,0);
      6:lon:=StrToFloatDef(t,0);
Уважаемые специалисты! даже в первых 20ти записях видно что широта и долгота могут быть в колонках 3 и 4 или 5 и 6 а дальше в 7 и 8!
Тоесть структура = Как_попало
Изображения
Тип файла: jpg Chaotic.JPG (93.1 Кб, 147 просмотров)
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.

Последний раз редактировалось HellMercenariess; 06.08.2017 в 18:11.
HellMercenariess вне форума Ответить с цитированием
Старый 06.08.2017, 18:21   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

А после широты и долготы колонка с "P", не? Может на это и нужно опираться. Предположительно, понятия не имею ))

И "H" есть (

А может первая, которая число, не считая самой первой ?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 06.08.2017 в 18:31.
Аватар вне форума Ответить с цитированием
Старый 06.08.2017, 21:34   #7
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,538
По умолчанию

Хорошо, берем со ссылы http://download.geonames.org/export/dump/ файл UA.txt.
Я прицепил его часть, он длинный, здесь на форуме не получится весь вложить.
Расшифровываем с помощью моей проги - все получилось.
Читайте внимательней, что я писал. Там вся проблема оттого, что могут быть всякие альтернативные имена во всяких кодировках, их количество разное. Я беру то, что в ASCII. Но разделители всегда - ТАВ (09).
Изображения
Тип файла: png GeoUA.PNG (47.6 Кб, 45 просмотров)
Вложения
Тип файла: txt UApart.txt (54.3 Кб, 140 просмотров)

Последний раз редактировалось type_Oleg; 06.08.2017 в 21:39.
type_Oleg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как считывать из файла xml Начинающий програм Помощь студентам 0 26.12.2012 22:11
Как считывать информацию с бинарного файла? Максим139 C# (си шарп) 1 03.09.2012 23:39
Как считывать реестр на VB или команды regedit Mr_ViK Помощь студентам 1 01.09.2011 16:17
Как считывать из файла построково? Dimedrolum Общие вопросы C/C++ 3 02.10.2009 21:13
как считывать информацию с doc файла ar4i Общие вопросы Delphi 2 11.12.2006 12:52