---
title: "Week/Word"
type: "forum-thread"
url: "https://www.webforum.nu/amne/programmering/104791-week-word"
topic: "Programmering"
topic_url: "https://www.webforum.nu/amne/programmering"
author: "Glitter"
published: "2004-06-02T07:14:59.000Z"
updated: "2004-06-07T14:19:37.000Z"
replies: 11
views: 465
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/programmering/104791-week-word"
---

# Week/Word

## #1 — Glitter, 2004-06-02T07:14Z

jag använder dephi 7

Hur får man ut veckan som är nu?
är det inte

```
WeekOf(date);
```

isåfall hur konverterar man word till string?
inttostr funkar ju inte det blir inte fel i compilatorn men den klagar när man kör programmet...
'Access violation att address....'

Permalänk: https://www.webforum.nu/p/104791

## #2 — akkeakker, 2004-06-02T07:34Z

Jag vet inte vad du gör för fel men testa om detta funkar:

```
uses DateUtils

...

procedure TForm1.Button1Click(Sender: TObject);
var d: TDateTime;
    w: Integer;
    s: string;
begin
    d := Now();
    w := WeekOf(d);
    s := IntToStr(w);
    ShowMessage('Aktuellt veckonummer: ' + s);
end;
```

Permalänk: https://www.webforum.nu/p/1360016

## #3 — Glitter, 2004-06-02T07:52Z

ditt exempel funkade perfekt...
hittade felet men vet inte hur jag skall lösa det...
har komponenten från indy clients idFTP och det är den som inte vill använda now() eller date()

```
procedure TForm1.Button1Click(Sender: TObject);
var
  d: TDateTime;
  i, ar, vecka: integer;
  mapp, filupp, filnamn: string;
begin
  d := now();
  ar := YearOf(d);
  vecka := WeekOf(d);
  mapp := inttostr(ar) + '_' + inttostr(vecka);
  ShowMessage(mapp);

  IdFTP1.Connect();
    IdFTP1.ChangeDir(mapp);
    IdFTP1.Put(fillupp, filnamn);
  IdFTP1.Disconnect;
end;
```

får fel på 
IdFTP1.Disconnect;
felmess: 'Access violation att address....'

Permalänk: https://www.webforum.nu/p/1360022

## #4 — akkeakker, 2004-06-02T10:33Z

Kan nog inte hjälpa mycket mer då jag inte kan något alls om sockets, ftp osv. Det enda råd jag kan ge är att använda debuggern och sakta stega dig fram i koden och se vart det skiter sig.

Permalänk: https://www.webforum.nu/p/1360108

## #5 — Glitter, 2004-06-02T11:00Z

okey tack ändå...

Permalänk: https://www.webforum.nu/p/1360127

## #6 — Glitter, 2004-06-03T08:31Z

ingen annan som vet hur man skall göra?

det verkar inte som det går att använda någon typ av input för jag testade att skriva 
vecka : = 2004;
vecka := 23;
men det verkade inte som det hade någon betydelse...

Jag skall kolla om en mapp finns 2004_23 när jag kör ifen så blir det fel 'Access violation att address....'
fattar inte varför...
kan det vara en bugg i indys ftp client?
isåfall är det någon som vet någon annan bra ftp man kan använda ?

Permalänk: https://www.webforum.nu/p/1360561

## #7 — Hardrocker, 2004-06-03T12:07Z

Om jag har förstått dig rätt så får du ett fel när du försöker byta till en katalog som inte finns.

Om det inte finns någon funktion för att testa om en katalog finns på servern så får du lägga koden i ett try/except statement.

Kan tillägga att jag aldrig har använt mig av Indys ftpklient.

Permalänk: https://www.webforum.nu/p/1360658

## #8 — Glitter, 2004-06-04T09:27Z

altså så här...

```
fexists := false;
repeat
     if mapp = list[i] then
        begin
             fexists := true;
        end;
     inc(i);
until (i = list.count-1) OR (fexists = true);
```

det är "if mapp = list *then" som det blir fel på...*

Permalänk: https://www.webforum.nu/p/1361007

## #9 — akkeakker, 2004-06-04T22:27Z

Har du initierat i? Om inte så försöker du komma åt ett odefinierat objekt i list. Jag får denna kod att funka som kanske kan likna något som du har?

```
procedure TForm1.Button1Click(Sender: TObject);
var mapp: string;
    i: Integer;
    list: TStringList;
    fexists: boolean;
begin
    list := TStringList.Create();
    list.AddStrings(memo1.Lines);
    fexists := false;
    mapp := 'repeat';
    i := 0;
    repeat
        if mapp = list[i] then
        begin
            fexists := true;
        end;
        inc(i);
    until (i = list.count - 1) or (fexists = true);
    ShowMessage(IntToStr(i));
end;
```

Permalänk: https://www.webforum.nu/p/1361342

## #10 — Glitter, 2004-06-07T07:45Z

Tackar hade redan löst det men det var

```
list := TStringList.Create();
```

som jag hade glömt...
varför skall man göra så ?
jag menar man har ju redan dimat den som TStrings...
är det någon skilnad på TStrings & TStringList?

Permalänk: https://www.webforum.nu/p/1362249

## #11 — akkeakker, 2004-06-07T12:00Z

Den raden måste du ha pga att alla objekt måste skapas innan de kan användas. Koden jag gav dig är inte så bra då jag inte frigör objektet, vilket oxå måste göras för alla abjekt som man skapa och som man inte tilldelar någon ägare.

Här är ett bättre förslag där jag frigör objektet list samt använder objektet i ett try-finally block. Nyttan med det är att även om något inträffar i try delen så frigörs alltid objektet list och jag låser inte upp minnet ifall det skulle bli knas. :)

```
procedure TForm1.Button1Click(Sender: TObject);
var mapp: string;
    i: Integer;
    list: TStringList;
    fexists: boolean;
begin
    list := TStringList.Create();
    try
        list.AddStrings(memo1.Lines);
        fexists := false;
        mapp := 'repeat';
        i := 0;
        repeat
            if mapp = list[i] then
            begin
                fexists := true;
            end;
            inc(i);
        until (i = list.count - 1) or (fexists = true);
    finally
      list.Free;
      list := nil;
    end;
    ShowMessage(IntToStr(i));
end;
```

Permalänk: https://www.webforum.nu/p/1362364

## #12 — Glitter, 2004-06-07T14:19Z

okey tackar :)

Permalänk: https://www.webforum.nu/p/1362461

---

Tråden på webben: https://www.webforum.nu/amne/programmering/104791-week-word
