FAQ |
Kalender |
2005-02-02, 03:44 | #1 | |||
|
||||
Medlem
|
Tjena,
Jag har ett par text filer där informationen slutligen skall till access. Detta är företags info. Problemet är att all text ligger i samma rad, typ 6-8 rader per företag. I det stora ser det ut så här rakt över: 2. Micanor A.S. Address:P.O.Box 6611, Roedeloekka, (Sinsenveien 11), N-0502 Oslo, Norway Phone47) 22809700 Fax47) 22809701 E-mail:[email protected] Contact:Mr Dag Fylling, Manager 3. Snorre AS Address:Nordre Langarinden 7, N-5131 Nyborg-Bergen, Norway Phone47) 55-531890 Fax47) 55-192990 Contact:Mr Egil Hundven, Managing Director Jag har problem att konvertera detta till kollumner. 2 kollumner är inga problem men vad jag vill ha är en kollumn för adress, en för Phone, en för Fax, etc,. En kille jag träffat här på WN har försökt bygga en PHP fil men vi är inte riktigt framme ännu. http://jozo.mine.nu/txt/ (klipp och klistar ovan text). Är det någon som vet om detta är möjligt. Niclas |
|||
Svara med citat |
2005-02-02, 06:44 | #2 | ||
|
|||
Medlem
|
Allt är möjligt.
Mindre-än-femminuters-hack i PHP. Skapa en stack med standardvärden, kör över standardvärden med riktiga värden, spara stacken vid nytt företag, nollställ stacken. Resultatet blir enkel tabseparerad text som borde gå att importera enkelt till valfri databas. Kod:
<?php $data = file_get_contents("data.txt"); $data = str_replace("\r", "", $data); $rows = explode("\n", $data); $processed = array(); $save = array('Company' => "", 'Address' => "", 'Phone' => "", 'Fax' => "", 'E-mail' => "", 'Contact' => ""); foreach($rows as $row) { if(strlen($row) != 0) { if(preg_match("/^([0-9]+\. )/", $row)) { if($save['Company'] != "") $processed[] = $save; $save = array('Company' => "", 'Address' => "", 'Phone' => "", 'Fax' => "", 'E-mail' => "", 'Contact' => ""); list($n, $value) = explode(". ", $row, 2); $save['Company'] = $value; } else { list($field, $value) = explode(":", $row, 2); $save[$field] = $value; } } } if($save['Company'] != "") $processed[] = $save; echo "<pre>\n"; echo "Company\tAddress\tPhone\tFax\tE-mail\tContact\n"; foreach($processed as $company) echo implode("\t", $company) . "\n"; echo "</pre>\n"; ?> |
||
Svara med citat |
Svara |
|
|