24. april 2006 - 21:12Der er
6 kommentarer og 1 løsning
Finde ord det står med store bogstaver i memofelt
Hej
Jeg skal trække data ud fra et memo felt som er fyldt med tekst. Det der er det specielle er at det kun er linie hvor det første ord står med store bogstaver der skal ud
eksempel
13-01-2003 KNGE45D Op. plast/reconstr. u. fremmedleg. lig. cruc. ant. I universel anæstesi og blodtomhed
Problemet er at ordet kan står på hvilken som helst linie i memofeltet - men det vil altid stå som det første. Der er ingen begrænsing på hvordan ordet kan se ud. Et andet eksempel er KABC56 eller DM480
Virksomheder er på vej fra store sprogmodeller, der svarer på spørgsmål, til AI-agenter, der kan udføre opgaver på egen hånd. Det gør teknologien mere nyttig – og langt mere risikabel.
Det vil sige linien "I universel anæstesi og blodtomhed" også opfylder kriteriet med store bogstaver ???? Det er ikke bare ordet efter dato du kan bruge ?
desvære kan man ikke være sikker på at der står en dato for and det som skal hentes ud. Linien I universel anæstesi og blodtomhed opfylder ikke det krav og skal ikke med det eneste som skal med er KNGE45D Op. plast/reconstr. u. fremmedleg. lig. cruc. ant. som skal deles op i 2 felter felt 1 : KNGE45D og felt 2 : Op. plast/reconstr. u. fremmedleg. lig. cruc. ant. Det eneste som man kan være helt sikker på er at det som skal hentes ud starter med et ord hvor alle bogstaver er med stor og at linien som skal hentes ud slutter med #10#13
En løsning vil være at man laver en function som undersøger om alle bogstaver i ordet er med stort - men hvordan man lige gør det er jeg vist lidt for tungøjet til at kunne se nu. Man ved desuden også at det ordet med stort altid vil være det første ord på linien.
Tja ved sku ikke om det er godtnok, bare lige et hurtig udkast til de ting du har oplyst
procedure TForm1.Button1Click(Sender: TObject); var I: integer; buf: string; begin for I := 0 to memo1.Lines.Count - 1 do begin buf := memo1.Lines.Strings[I]; //- any space if pos(' ', buf) <> 0 then buf := copy(buf, 0, pos(' ', buf)-1);
//- ignore date if pos('-', buf) <> 0 then continue;
if (buf <> '') and (ansiuppercase(buf) = buf) then begin showmessage(buf); break; end; end; end;
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.