Results 1 to 15 of 15

Thread: file inlezen en converteren naar textfile

  1. #1

    file inlezen en converteren naar textfile

    Hoi forumleden,

    Ben een heel lange tijd niet meer hier geweest na het succesvol behalen van mijn hbo opleiding informatica vorig jaar, mede dankzij dit forum.

    Ik hoop dat 1 van jullie me op weg kan helpen met het volgende probleem.

    Ik heb een file met ruwe data deze vertegenwoordigen records die gescheiden zijn met null fields en verschillende karakters. Nu moet ik deze records converteren naar een ander formaat. Nadeel is dat deze records velden bevatten die variabele inhouden hebben en daarnaast ook nog eens leeg kunnen zijn.

    Wie kan me een stukje op weg helpen, ben een beetje roestig met deze materie gezien de huidige arbeidsmarkt.
    Last edited by Delphi stagiair; 13-Mar-03 at 09:37.

  2. #2
    Old Navigator Matthijs's Avatar
    Join Date
    Mar 2001
    Location
    Ede, NL. Delphi: Delphi 7/2005 :). Matthijs schrijf je Matthijs
    Posts
    2,199
    Weet je dat ik erg veel moeite heb om de overeenkomst tussen de bron en het doel te vinden? Ik zie dat er dingen overeenkomen, maar de volgorde is anders en er komen dingen te voorschijn die helemal niet in de bron staan en anders om.

    Maar ik zou het als volgt doen:
    1. Neem de volledige string uit de bron.
    2. Zoek de positie van het eerste scheidingsteken.
    3. Kopieer het deel voor het scheidingsteken naar een variabele.
    4. Verwijder het deel van de string tot en met het eerste scheidingsteken.
    5. Vervolg met stappen 2 tot en met 4 tot hele record verwerkt.
    6. Ken de waardes toe aan de juiste plaatsten in je doel.
    7. Ga verder met 1 tot het volledige bestand is verwerkt.

    Met een HBO diploma informatica had je dit zelf toch ook kunnen bedenken? Ik neem aan dat je het dan wel zelf kunt omzetten naar code. Anders staan er op het forum nog wel een aantal voorbeelden.
    What's in a sig?

    Would my posting be less valuable if it didnot have a sig? (Vrij naar William S.)

    Let op de kleine lettertjes. For all postings: e&oe!
    This program performed an illegal function, the police are on their way

  3. #3
    Ik weet het Matthijs,

    alleen mijn hersenenen zijn niet meer zo op programmeren gericht, door al dat solliciteren wat ik doe. Daarom vraag ik het hier, ik vertrouw erop dat dit forum mijn 'ingeslapen' programmeertalenten ffkes kickstart

    met Pos en Copy kom ik toch wel een eind he?

  4. #4
    Ja maar als ik goed heb begrepen gaat het om meerdere records??? Je kan het proberen een soort structuur zoals mathijs heeft gezegd te zoeken en dan wegschrijven naar een tekstfile. Of zoals jij het zegt elke regel van het bestand af gaan en dan met pos, delete etc.

  5. #5
    Senior Member PsychoMark's Avatar
    Join Date
    Nov 2001
    Location
    Raamsdonksveer
    Posts
    10,269
    http://www.x2software.net/viewarticle.php?id=5&page=2

    Deze Split-functie heb ik geschreven juist voor dit soort doeleinden: een regel splitsen met behulp van een scheidingsteken. Als het om een nul-character gaat, gebruik dan simpelweg #0 als scheidingsteken...
    Qui custodiet ipsos custodes

  6. #6
    je split functie werkt , maar ik krijg de delimiters niet goed ingegeven. Als ik debug lijken de delimiters sowieso geen deel uit te maken van de string. Ik heb ze met een hex viewer bekeken en het zijn waardes die bijvoorbeeld bytewaarde 0 en 14 hebben

  7. #7
    Psychomark kun je me helpen,

    de string ziet er schematisch ongeveer zo uit

    String: substring(vaste lengte)- delimiter(geen char)-variabele substring- delimiter(geen char)

    Jouw split pikt die delimiters niet omdat ze geen char zijn

  8. #8
    of wacht ik plak er een zipfiletje aan vast dan kun je er eens naar kijken als je misschien tijd hebt
    Last edited by Delphi stagiair; 13-Mar-03 at 09:37.

  9. #9
    vorige was bronbestand, hier is het doel bestand
    Last edited by Delphi stagiair; 13-Mar-03 at 09:38.

  10. #10
    Character 31 is de delimiter tussen de velden. Maar waar gaat het precies mis? Misschien kun je je project even posten dan kijken we mee.
    Marcel

  11. #11
    Ok Marcel , dit is wat ik tot zover heb weten te produceren. Maar het rammelt van alle kanten. Volgens mij wordt 1 record gescheiden door de karakters '1B', dus daar zoek ik op om het record eruit te halen. Vervolgens krijg ik het record gevuld in een string waarbinnen de velden ook gescheiden zijn met delimiters. De eerste 3 velden krijg ik eruit met de Pos functie, maar daarna begint het gedonder. Ik heb de split van psychomark gebruikt maar dat pikt ie ook niet. Bijkomend probleem is dat mijn Eof lus niet goed werkt,want hij haalt niet alle records eruit.

    Ik hoop dat 1 van jullie me op weg kan helpen ,want volgens mij ben ik helemaal verkeerd bezig
    Last edited by Delphi stagiair; 13-Mar-03 at 09:38.

  12. #12
    Old Navigator Matthijs's Avatar
    Join Date
    Mar 2001
    Location
    Ede, NL. Delphi: Delphi 7/2005 :). Matthijs schrijf je Matthijs
    Posts
    2,199
    Als ik het goed zie, komt jouw code in het kort hier op neer:
    1. Lees uit een file tot je karakter $1B tegenkomt.
    2. Vul op basis van deze string een Memo
    3. Schrijf deze string in een andere file.

    Vragen.
    De tekst in de Memo komt niet overeen met de layout zoals dat staat opgegeven in je opdracht. Klopt dit en zo ja waarom zet je dit in een memo?
    Waarom schrijf je iets naar een andere file? Je doet er daarna niets mee en ook deze layout is niet je doel.

    Dus: of je hebt nog niet alle relevante code gepost of je zit echt helemaal op de verkeerde weg.

    [edit] Wanneer denk je dat Regel '1B' gaat worden? Is deze letter combinatie dan een scheidingsteken? of is char($1B) een scheidingsteken?
    Last edited by Matthijs; 10-Mar-03 at 08:28.
    What's in a sig?

    Would my posting be less valuable if it didnot have a sig? (Vrij naar William S.)

    Let op de kleine lettertjes. For all postings: e&oe!
    This program performed an illegal function, the police are on their way

  13. #13
    Ik gebruik die memo om te controleren of ik de goede velden eruit krijg.
    Zover ik zelf heb gezien begint een record vanaf 1B. Ik heb het bronbestand gewoon als textfile benaderd,is dit misschien fout? En zo ja hoe moet ik hem dan inlezen?

    Het probleem zit hem in ieder geval in de delimiters die ik niet op de juiste wijze gedetecteerd krijg. Daarom is mijn vraag of iemand misschien kan zien wat het nou voor delimiters zijn.

  14. #14
    Old Navigator Matthijs's Avatar
    Join Date
    Mar 2001
    Location
    Ede, NL. Delphi: Delphi 7/2005 :). Matthijs schrijf je Matthijs
    Posts
    2,199
    Heb hier zo gauw ff geen hex-geval bij de hand, dus als Marcel zegt dat #31 de velden scheidt neem ik dat maar aan. Daarna is het de vraag of een record van het vorige gescheiden wordt door "1B" aan het begin van het eerste veld, of door #31!#31 en dat die "1B" onderdeel van de data is.
    Maar je kunt toch chr(31) meegeven aan de split-functie van Mark?
    What's in a sig?

    Would my posting be less valuable if it didnot have a sig? (Vrij naar William S.)

    Let op de kleine lettertjes. For all postings: e&oe!
    This program performed an illegal function, the police are on their way

  15. #15
    Ben eruit , bedankt voor jullie hulp.

    Bronfile moest als untyped file worden benaderd en de recordvelden eindigden allemaal op chr(0)

    Als weer eens wat is :-)

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Cd-brand programma nodig
    By RedPanda in forum Koffiehoek
    Replies: 6
    Last Post: 13-Apr-03, 14:13
  2. van interbase naar access converteren
    By SirE in forum Databases
    Replies: 7
    Last Post: 21-Mar-02, 23:47
  3. converteren naar Delphi 6
    By joostingh in forum Algemeen
    Replies: 2
    Last Post: 22-Feb-02, 12:58
  4. inlezen van een .res file?
    By kuntao in forum Algemeen
    Replies: 3
    Last Post: 14-Jan-02, 23:08
  5. Word doc converteren naar PDF formaat
    By Maiko in forum Algemeen
    Replies: 3
    Last Post: 18-Sep-01, 13:24

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •